主题:  15组的 lingo

singingboy

职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2000/11/24 13:17:37
#12001/1/3 16:54:56
以下内容中包括的词,如sprite ,handle,member,casemember,java script,keyword;
分别暂译为 角色, 处理程序,演员,演员表成员,java 脚本,关键字;

repeat while
语法:repeat while testCondition --(判断条件)

statement(s) --(lingo语句)

end repeat
描述:关键字;反复执行statement(s)中的命令行,直到testcondition中指定的条件为真时退出循环;
此结构可以用于lingo语句中,如不断的读取字符串直到文件的结尾,不断查看列表中的条目直到列表
的结尾;或者重复的执行一个行为直到用户按下或者松开鼠标;
在一个重复的循环中,lingo将忽略其它的事件。此时可以使用keypressed属性检测当前的键值。
同一时间只可以有一个句柄可以执行;如果lingo语句在一个重复的循环执行太长的时间,其它的事件
会排队等待响应。因此,重复的循环最好用于短且快的操作中或者是程序空闲的时候;
director的java程序不能检测到鼠标的移动,在一个重复的循环中,你需要更新指明鼠标位置的属性
和鼠标按钮是否被按下的状态;
如果停止循环的条件一直没有响应或者没有象exit这样的退出重复循环的语句,你可以使用Control+Alt+period (Windows)
或者Command+period (Macintosh)强制退出循环;
例子:这个处理程序开始以属性the timer开始计时,初始化the timer为零,然后加到60ticks:
on countTime
    startTimer
    repeat while the timer < 60
    -- waiting for time
    end repeat

end countTime
参看:exit,exit repeat,repeat with,keypresses()

repeat with
语法:repeat with counter = start to finish

statement(s)

end

描述:关键字;执行start和end之间的差值次的staements中指定的lingo语句。每执行一遍循环counter会
自动加1。
对一系列角色重复应用相同的操作或者对一些解释说明进行一系列数值的计算时此结构非常有用;
在一个重复的循环中,lingo将忽略其它的事件。此时可以使用keypressed属性检测当前的键值。
同一时间只可以有一个句柄可以执行;如果lingo语句在一个重复的循环执行太长的时间,其它的事件
会排队等待响应。因此,重复的循环最好用于短且快的操作中或者是程序空闲的时候;
director的java程序不能检测到鼠标的移动,在一个重复的循环中,你需要更新指明鼠标位置的属性
和鼠标按钮是否被按下的状态;
如果停止循环的条件一直没有响应或者没有象exit这样的退出重复循环的语句,你可以使用Control+Alt+period (Windows)
或者Command+period (Macintosh)强制退出循环;
例子:下面的例子使1到30的角色通道的puppersprite属性设为true
on puppetize
    repeat with channel = 1 to 30
        puppetSprite channel, TRUE
    end repeat

end puppetize
参看:exit,exit repeat,repeat while

repeat with...down to
语法:repeat with variable = startvalue down to endvalue
描述:关键字;从startvalue到endvalue每次递减1;
对一系列角色重复应用相同的操作或者对一些解释说明进行一系列数值的计算时此结构非常有用;
在一个重复的循环中,lingo将忽略其它的事件。此时可以使用keypressed属性检测当前的键值。
同一时间只可以有一个处理程序可以执行;如果lingo语句在一个重复的循环执行太长的时间,其它的事件
会排队等待响应。因此,重复的循环最好用于短且快的操作中或者是程序空闲的时候;
director的java程序不能检测到鼠标的移动,在一个重复的循环中,你需要更新指明鼠标位置的属性
和鼠标按钮是否被按下的状态;
如果停止循环的条件一直没有响应或者没有象exit这样的退出重复循环的语句,你可以使用Control+Alt+period (Windows)
或者Command+period (Macintosh)强制退出循环;
例子:这个处理程序包含一个从20到15递减的重复循环:
on CountDown
    repeat with i = 20 down to 15
        sprite(6).memberNum = 10 + i
        updateStage
    end repeat

end

repeat with...in list
语法:repeat with variable in someList
描述:关键字;分配指定列表中连续的值给变量;
对一系列sprites重复应用相同的操作或者对一些解释说明进行一系列数值的计算时此结构非常有用;
在一个重复的循环中,lingo将忽略其它的事件。此时可以使用keypressed属性检测当前的键值。
同一时间只可以有一个句柄可以执行;如果lingo语句在一个重复的循环执行太长的时间,其它的事件
会排队等待响应。因此,重复的循环最好用于短且快的操作中或者是程序空闲的时候;
director的java程序不能检测到鼠标的移动,在一个重复的循环中,你需要更新指明鼠标位置的属性
和鼠标按钮是否被按下的状态;
如果停止循环的条件一直没有响应或者没有象exit这样的退出重复循环的语句,你可以使用Control+Alt+period (Windows)
或者Command+period (Macintosh)强制退出循环;
例子:下面的语句将在消息窗口中显示四个数字:
repeat with i in [1, 2, 3, 4]
    put i

end repeat

on resizewindow
语法:on resizeWindow

statement(s)

end
描述:系统消息和事件处理程序;包含当一个影片以MIAW方式运行和用户通过拖曳窗口的边框改变窗口的大小;
一个on resizewindow 事件句柄是放置联系窗口尺寸的lingo语句的好地方,如确定sprites的位置或剪切
digital video 的lingo语句;
例子:这个处理程序当正在运行的影片被改变大小的时候,移动sprite 3的到变量centerplace指出的坐标处;
on resizeWindow centerPlace
    sprite(3).loc = centerPlace
end
参看:drawrect ,sourcerect

restart
语法:restart
描述:命令;关闭所有打开的应用程序并且重新启动计算机。
例子:这个语句说明当用户按下Command+R (Macintosh) 或者 Control+R (Windows)时重新启动计算机:
if the key = "r" and the commandDown then restart
参看:quit,shutdown

result
语法:the result
描述:函数;显示由最后一个处理程序执行的return表达式的值。
result函数对于获得当前正在窗口中播放的电影的参数和通过消息窗口显示句柄执行的结果来跟踪
影片播放时的lingo进程是十分有用的。
此函数对java放映机不起作用。
为了返回一个处理程序的结果,可以通过把结果赋给一个变量并且检测变量的值来实现。使用形如:
set MyVariable=function(),这里function()是特定的函数的名称。
例子:下面的处理程序从返回两个1到6的随机数的和:
on diceRoll
    return random(6) + random(6)

end
例子:下面两条语句
diceRoll

roll = the result
等同于:
set roll=diceRoll()
注意set roll=diceRoll 不会调用句柄,因为在diceroll后面没有圆括号;diceroll这里
会被认为是一个变量参数。
参看:return (keyword)

resume sprite
语法:sprite(whichGIFSprieNjmber).resume()
resume(sprite whichFiFSpriteNumber)
描述:Animated GIF 命令;如果角色被暂停,则使角色从当前帧的下一帧恢复播放。如果
Animated GIF 未被暂停则此命令没有影响。
参看:pause sprite,rewind sprite

return(constant)
语法:RETURN
描述:常量;表示一个回车。
例子:这个语句实现当用户按下回车键时使一个暂停的电影继续播放:
if (the key = RETURN) then go to the frame + 1
例子:这个语句实现在一个警告消息中用回车符号常量在两行文字中插入一个硬回车:
lert "Last line in the file." & RETURN & "Click OK to exit."
例子:在windows中,这是一个标准的惯例,在每一行的末尾加上一个换行字符。下面的
语句创建一个名为CRLF的双字节的字符串来提供一个换行符:
CRLF = RETURN & numToChar(10)

return(keyword)
语法:return expression
描述:关键字;返回expression 的值并且退出处理程序。expression可以是任何值。

此函数类似exit命令,除了return在任何情况都会返回一个值。return命令可以立即
退出处理程序,但是它会返回一个值给调用它的lingo。
return在目标导向(object-oriented) 脚本可能比较难于理解。首先用return创建一个函数
并且退出处理程序,然后你可以看到在一个on new 处理程序的return me 行给你提供了一个
返回一个被建立的对象的参数,它可以被分配一个变量名。
return 关键字不同于字符常量RETURN ,RETURN 代表一个回车符。函数依赖它相关的程序。
获得一个返回值,可以用圆括号加在调用语句的处理程序后面,以表示被命名的处理程序是一个
函数。
要想参看一个用在完成了的影片中的return(keyword)示例,可以查看director 安装程序目录中
的LEARNING\LINGO例子目录中的 Parent Scripts movie。
例子:此处理程序返回一个介于5和100之间的5的倍数:
on getRandomScore
    theScore = 5 * random(20)
    return theScore
end getRandomScore
调用这个处理程序类似下面:
set thisScore to GetRandomScore()
在这个例子中,变量thisscore被赋值为函数getrandonscore的返回值。
参看:result ,RETURN(constant)

rewind()
语法:sound(channelNum).rewind()

rewind(sound(channelNum))
描述:函数;中断当前channelnum所指的声音通道中的声音并且从声音的开头重新播放。
如果声音已经被暂停,播放头指向声音开头,并且保持暂停状态。
例子:从头回放在声音通道1中的声音演员:
sound(1).rewind()
参看:pause()(sound playback),play()(sound),playNext(),queue(),stop()(sound)

rewind sprite
语法:sprite(whichFlashOrGIFAnimSprite).rewind()

rewind sprite whichFlashOrGIFAnimSprite
描述:命令;在被停止或正在播放时使一个Flash或者animated GIF movie 角色回到第一帧;
例子:这个帧脚本检测行为所在帧的flash影片角色是否正在播放,如果是,则继续在当前帧循环。
当影片角色结束,则使影片角色回到第一帧,并且继续执行后面的帧。
property spriteNum
on exitFrame
    if sprite(spriteNum).playing then
        go the frame
    else
        sprite(spriteNum).rewind()
        updateStage
    end if

end

?right
语法:sprite(whichSprite).right

the right of sprite whichSprite
描述:角色属性;以象素表示指定的角色的右边到舞台的左边之间的距离。
When a movie plays back as an applet, this property's value is relative to the upper left corner of the applet.
Sprite coordinates are expressed relative to the upper left corner of the Stage.
此属性可以被检测和设置。
例子:下面的语句将调用offrightedge处理程序,当角色 3的右边超过舞台的左边。
if sprite(3).right > (the stageRight - the stageLeft) then offRightEdge
参看:bottom, height, left, locH, locV, top, width

rightindent
语法:chunkExpression.rightIndent
描述:文本演员属性;用来设定文本演员内的子字符串的右缩进(以像素为单位)
它的值为一个大于等于零的整数。
此属性可以被检测和设置。
参看:firstIndent, leftIndent

on rightmousedown
语法:on rightMouseDown
statement(s)
end
描述:系统消息和事件处理程序;在windows中,当鼠标右键被按下时,将运行指定的语句。在MACINTOSH上,
   当鼠标右键和Control键同时被按下并且emulateMultiButtonMouse属性被设为真时,运行指定的
   语句。如果此属性被设为false,则此事件句柄在MACINTOSH上没有影响;
例子:此处理程序在windows中,当用户点击鼠标右键时打开帮助窗口:
   on rightMouseDown
    window("Help").open()
   end

rightmousedown(系统属性)
语法:the rightmousedown
描述:系统属性;提示是否鼠标右键(windows中)或者鼠标键和control键被按下(macintosh中)。
在macintosh中,只有emulatemultibuttonmouse属性被设为true时,rightmousedown才可能为真。
例子:下面的语句是在windows中检查是否鼠标右键被按下,如果是,则在通道2中播放名为“oops”的声音:
if the rightMouseDown then puppetSound 2, "Oops"
参看:emulateMultiButtonMouse

on rightmouseup(事件处理程序)
语法:on rightmouseup
statement(s)
end
描述:系统消息和事件处理程序;在windows中,表示运行时鼠标右键被释放的状态。在macintosh中,表示运行时
是否鼠标右键被释放同时control键被按下,前提是emulatemutibuttonmouse属性设为true;如果此属性为
false,此事件处理程序对macintosh没有影响。
例子:此处理程序在windows中,当用户释放鼠标右键时打开帮助窗口:
on rightMouseUp
    window("Help").open()
end

rightmouseup(系统属性)
语法:the rightmouseup
描述:系统属性;提示是否鼠标右键(windows中)或者鼠标键和control键被释放(macintosh中)。
在macintosh中,只有emulatemultibuttonmouse属性被设为true时,rightmousedown才可能为真。
例子:下面的语句是在windows中检查是否鼠标右键被释放,如果是,则在声音通道2中播放声音"click me";
参看:emulateMultiButtonMouse

?rollover()
语法:rollover(whichsprite)
the rollover
描述:函数;指出是否鼠标当前落在由whichsprite所指定的角色的矩形区域内。如果是则返回ture或1,
如果不是则返回false或0;
这个函数有两个可能的语法格式:
*rollover后面带有括号,但是前面没有the
*rollover的前面有the,后面不带括号。
rollover函数通常被用在帧脚本里而且在创建一个当用户把光标放在特定的对象就执行一个行为
的处理程序时十分有用。
如果用户不停的滚动鼠标,就算lingo当前正在运行一个处理程序,rollover的值仍然可以改变。
You can make sure that a handler uses a consistent rollover value by assigning rollOver to a variable when the handler starts.
当光标落在一个不再显示在当前影片片段的舞台上的角色时,rollover仍然认为角色在那个位置。
避免这种问题出现的办法是不。。。
例子:这个语句的功能是当光标移到角色6上时,改变文本域演员MESSAGE的内容为"This is the place".
if rollover(6) then member("message").text="This is the place."
例子:这段处理程序实现当光标移到舞台上的某一个对象时移动播放头到不同的帧。程序刚开始时,把
the rollover 的值赋给一个变量。使得当程序执行时the rollover 的值就开始作用,不管此后
用户是否继续移动鼠标。
on exitFrame
    set currentSprite = the rollover
    case currentSprite of
        1: go to frame "Left"
        2: go to frame "Middle"
        3: go to frame "Right"
    end case

end exitFrame
参看:mousemember

romanlingo
语法:the romanlingo
描述:系统属性;指出是否lingo用单字节(true)或者双字节编译器(false).
lingo编译器处理单字节程序可以获得更快的效率。例如macintosh上有些版本的
日文系统软件,使用的是双字节的设置,而美国的系统软件使用的是单字节的设置,
通常,romanlingo在director开始运行并且确认当前的系统软件的版本时被设置。
如果你正在使用一个non-Roman脚本系统,且在你的脚本中不会使用任何双字节字符,
设置此属性为真将可以使你的lingo脚本执行的更快。
例子:此语句设置romanlinto为真,令lingo使用单字节字符的设置:
set the romanLingo to TRUE

?rotation
语法: the rotation of member whichQuickTimeMember
member(whichQuickTimeMember).rotation
sprite(whichSprite).rotation
the rotation of sprite whichSprite
描述:演员表属性和角色属性;控制一个在角色矩形框内的Quick Time影片、animate GIF、
flash movie或位图角色的旋转,对于Quick Time,将不会旋转角色的矩形框和控制条。
产生的效果是,角色的矩形框将作为你观看flash或quick time影片的活动窗口。位图
和animate GIFs的矩形框可以根据旋转的角度做相应的改变。
Score rotation works for a Flash movie only if obeyScoreRotation is set to TRUE.
(只有在obeyscorerotation被设为true时,)
一个flash影片环绕属性originmode指定的点旋转。Quick Time 影片环绕角色的矩形边框的
中心旋转。位图环绕图片的登记点旋转。(A bitmap rotates around the registration point of the image.)
对于quick time,如果角色的crop属性被设置为真,不断的旋转角色可以使部分图象显示
在可视范围之外;当角色的crop属性被设置为假,图象将会按比例缩放以适应角色的矩形
边框(这样经常会导致图象变形)。
你可以指定旋转角度为一个单精度的数值。
剪辑室可以保留的图象的旋转信息范围是+21,474,836.47?到 -21,474,836.48,允许每个
方向上59652周的旋转。
当旋转的角度超过限制(稍微超过了第59652周),旋转的角度被重置为+116.47或-116.48,
而不是0.00。这是因为+21,474,836.47等价于+116.47,-21,474,836.48等价于- 116.48(
或+243.12。为了避免这个问题,当你用lingo进行不断的旋转,限制角度在60。
此属性可以被检测和设置。默认值为0;
例子:下面的行为使一个角色在每次进入该帧之前旋转2度,旋转的角度限制在360度内。
property spriteNum
on prepareFrame me
    sprite(spriteNum).rotation = integer(sprite(spriteNum).rotation + 2) mod 360
end
例子:此帧脚本实现在通道5中每次递增16度旋转一个角色直到一周为止时使播放头在当前的帧循环:
on exitFrame
    if sprite(5).rotation < 360 then
        sprite(5).rotation = sprite(5).rotation + 16
        go the frame
    end if
end
例子:下面的处理程序参考角色的参数,并且每次递增10度旋转一个flash影片一周:
on rotateMovie whichSprite
    repeat with i = 1 to 36
        sprite(whichSprite).rotation = i * 10
        updatestage
    end repeat
end
参看:flipH, flipV, obeyScoreRotation, originMode

RTF
语法:member(whichMember).RTF
描述:演员表成员属性;
例子:此语句在消息窗口中显示包含在演员表成员“RESUME”中的RTF格式的信息:
put member("Resume").RTF
参看:HTML, importFileInto

runmode
语法:the runMode
描述:函数;返回一个字符串,表示当前正在播放的影片的模式。可能的值有以下几种:
*author--影片运行在DIRECTOR中。
*projector--影片以放映机形式运行。
*browserplugin--影片以shock wave形式或其他脚本环境,如LIVECONNECT 或ACTIVEX形式运行。
*java applet--影片以java applet 形式回放。
检测此属性值的最安全的方法是使用包含操作。这可以避免错误和允许特殊的匹配。
例子:下面的语句判断是否外部的参数可用,如果可用则取得此参数:
if the runMode contains "Plugin" then
    -- decode the embed parameter
    if externalParamName(swURL) = swURL then
        put externalParamvalue(swURL) into myVariable
    end if
end if
参看:environment, platform

?on runpropertydialog
语法:on runPropertyDialog me, currentInitializerList
statement(s)
end
描述:系统消息和事件处理程序;contains Lingo that defines specific values for a behavior抯 parameters in the Parameters dialog box.
当行为被赋与一个角色时或当用户改变角色行为初始值时显示runpropertydialog 消息。
一个行为初始化属性的当前设置程序通过一个属性列表形式显示。如果on runpropertydialog处理程序在行为中未定义。DIRICTOR    
运行一个基于on propertydialog处理程序返回的属性列表的自定义行为对话框。
例子:下面的处理程序强制改变在行为参数窗口中的行为值。新的值包含在列表currentinitializerlist中。通常,参数对话框允许
用户改变mass和grovitation contants的值。但是此处理程序将不显示对话框而直接分配参数值:
property mass
property gravitationalConstant
on runPropertyDialog me, currentInitializerList
    --force mass to 10
setaProp currentInitializerList, #mass, 10
    -- force gravitationalConstant to 9.8
setaProp currentInitializerList, #gravitationalConstant, 9.8
return currentInitializerList
end
参看:on getBehaviorDescription, on getPropertyDescriptionList
:confused: :confused: :confused: :confused: :confused:

编辑历史:[这消息被ovews编辑过(编辑时间2001-01-03 17:46:50)]


5D荣誉版主

职务:版主
等级:1
金币:10.0
发贴:177
注册:2000/9/17 8:56:36
#22001/1/3 17:48:27
我帮你把“禁止笑脸转换”选上了。
翻译组众兄弟工作完成的不错。



singingboy

职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2000/11/24 13:17:37
#32001/1/9 15:35:11
带?的函数中有我翻译不好的部分,就以英文方式留着,
希望帮我校对!



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#42001/1/21 22:50:06
qtRegisterAccessKey
语法:qtRegisterAccessKey(categoryString, keyString)
描述:命令,allows registration of a key for encrypted QuickTime media.
该键是请求级别的键,而非系统键。在unregisters命令发出或关闭之后,该键对媒体就不起作用了。
附:由于安全原因,没有办法陈列所有注册键。
参考:qtUnRegisterAccessKey

qtUnRegisterAccessKey
语法:qtUnRegisterAccessKey(categoryString, keyString)
    描述:命令, allows the key for encrypted QuickTime media to be unregistered.
该键是请求级别的键,而非系统键。在unregisters键发出请求后, only movies encrypted with this key continue to play. 其他媒体就再也不起作用了。
参考:qtRegisterAccessKey

quad
语法:sprite(角色所在通道的数字).quad
描述:角色属性; 包含在舞台上的角色的四个角所处位置的值的浮点数的列表。四个点的排列顺序如下:左上角,右上角,右下角,左下角.
利用该点,可以做出透明和扭曲的效果,在你设置该属性后,你可以关闭角色通道来重新设置它。当该属性被设置成不可用时,角色是不可以旋转或变形的。
在Director 所在目录下Learning\Lingo Examples有一个完整的例子,可供参考。
例:以下例子是典型地描述了该属性
put sprite(1).quad
-- [point(153.0000, 127.0000), point(231.0000, 127.0000), \
    point(231.0000, 242.0000), point(153.0000, 242.0000)]
例:当你修改该属性的时候,你必须知道,在改变任何一个值之后,必须重置列表,这是因为当你为属性定义一个变量的时候,变量只是列表的拷贝,而不是列表本身。让改变发生作用,可以利用象以下的语句:
-- 提取当前属性值
currQuadList = sprite(5).quad
--在第一个点的横向和竖向增加50个像素
currQuadList[1] = currQuadList[1] + point(50, 50)
-- 令改变发生作用
sprite(5).quad = currQuadList

参考    rotation, skew

quality
语法:sprite(whichFlashSprite).quality
the quality of sprite whichFlashSprite
member(whichFlashMember).quality
the quality of member whichFlashMember

描述:Flash 演员和角色属性; 通过该属性,可以控制director利用 anti- aliasing播放Flash时的质量高低问题,该属性的参数有:
#autoHigh-director. 如果实际侦速底于电影所设定的速度,Director将把anti-aliasing关闭. 利用该设置,跟随速度优于画面质量。
    #autoLow-Director开始播放的时候,不利用anti-aliasing. 如果Flasht播放器检查到中央处理器有足够的资源应付,便把anti-aliasing打开.无论如何,该设置均把画面质量放于首位。
#high (default)-播放电影的时候,总是把anti-aliasing打开.
#low-播放电影的时候,总是把anti-aliasing关闭。
该属性可以被读取和设置。
例:该角色行为测试播放本电影的计算机的像素,如果像素被设成8B或更底 (256种颜色)程序将把第五通道的角色的该属性设置成#low.
on beginSprite me
    if the colorDepth <= 8 then
        sprite(1).quality = #low
    end if
end

queue()
语法: sound(channelNum).queue(member(whichMember))
sound(channelNum).queue([#member: member(whichmember), {#startTime: milliseconds, #endTime: milliseconds, #loopCount: numberOfLoops, #loopStartTime: milliseconds, #loopEndTime: milliseconds, #preloadTime: milliseconds}])
queue(sound(channelNum), member(whichMember))
queue(soundObject, [#member: member(whichmember), {#startTime: milliseconds, #endTime: milliseconds, #loopCount: numberOfLoops, #loopStartTime: milliseconds, #loopEndTime: milliseconds, #preloadTime: milliseconds}])
功能描述: 将声音演员添加到指定的声音通道的队列中。
当一个声音被放置队列中,用the play()命令就可以立即播放. 这是因为Director 会为每个被假如队列的声音预载一定的数量,以防止发出the play() 命令后到正式播放之间的时间延迟。预载量默认值是1500豪秒。 该参数可以通过queue() 命令的参数列表修改,参数列表的参数可以是一个或一个以上。
你可以利用queue()命令指定任何可以被指定的属性参数。
属性描述:
#member     把声音演员列表. 该属性是必须的条件; 其他都是可选的.
#startTime    声音播放时所在声音时间段上的时间,以豪秒计算. 默认值是声音的开头. 参考 startTime.
#endTime    所播放的声音结束是的时间, 以豪秒计算. 默认值是声音的结尾. 参考endTime.
#loopCount    在 #loopStartTime 和 #loopEndTime之间定义的循环段的循环次数.默认值是1,参考:loopCount.
#loopStartTime    声音开循环所在的时间点, 以豪秒计算. 参考 loopStartTime.
#loopEndTime    声音结束环所在的时间点, 以豪秒计算. 参考loopEndTime.
#preloadTime    声音播放前的缓冲数量, 豪秒计算. 参考preloadTime.
这些参数对于setPlayList()命令来说是过时的。
To see an example of queue() used in a completed movie, see the Sound Control movie in the Learning\Lingo Examples folder inside the Director application folder.

例:    这程序对恋歌声音进行列队并播放. 第一个声音演员是 Chimes,它被完全播放. 第二个声音演员是introMusic, 从3秒的地方开始播放,对8-8.9秒之间循环5次,在10秒的地方结束,
on playMusic
    sound(2).queue([#member: member("Chimes")])
    sound(2).queue([#member: member("introMusic"), #startTime: 3000,\
    #endTime: 10000, #loopCount: 5, #loopStartTime: 8000, #loopEndTime: 8900])
    sound(2).play()
end
参考:    startTime, endTime, loopCount, loopStartTime, loopEndTime, preLoadTime, setPlaylist(),play() (sound)

quickTimeVersion()
语法:    quickTimeVersion()
    描述:    函数; 返回当前安装的QuickTime 的版本的浮点数并且替代QuickTimePresent 的函数.

在Windows里, 如果版本是由QuickTime 3.0或更新的版本共存,那么将返回quickTimeVersion()将返回最新的版本号.安装的是QuickTime 3.0以前的版本的, quickTimeVersion() 将忽略所安装的版本而返回2.1.2这个值。
例:这语句在信息窗口中利用quickTimeVersion()显示当前安装的QuickTime 的版本号
put quickTimeVersion()

quit
语法:    quit
    描述:命令;退出Director或程序
例:这个语句的作用是当用户按下Control+Q    (WINDOWS)或Command+Q (苹果机)时,退出程序。
if the key = "q" and the commandDown then quit
参考:    restart, shutdown

QUOTE
语法    QUOTE
    描述:    常量;表示引号,在字符串中,由于应用的内容需用引号引用,所以在Lingo中用该常量表示内容中的引号。
    例:该语句在字符串中插入引号:
put "Can you spell" && QUOTE & "Macromedia" & QUOTE & "?"

结果是把单词Macromedia用引号引起来

ramNeeded()
语法:ramNeeded (firstFrame, lastFrame)
    描述:    函数;检测显示指定的一系列的帧所需要的内存,一字节为单位。 例如, 你可以检测包含32位图的片段的容量,如果ramNeeded()返回的值比freeBytes()返回的值大,则转到只包含8-bit的片段并且把1024 字节转化成千字节 (K)。
例:该语句将显示电影第100帧到125帧所需的字节数值富裕变量frameSize
put ramNeeded (100, 125) into frameSize
例:该语句判断显示电影第100帧到125帧所需的内存是否比实际可用的内寻大,如果是,则转到利用位深更低(8-bit)的演员的的地方。
if ramNeeded (100, 125) > the freeBytes then play frame "8-bit"

参考:Bytes(),size

random()
语法:    random(整数表达式)
    描述:    函数;返回1到指定值之间的随意一个整数。 该函数可以使电影产生多样化的效果。例如,可以在游戏中产生不规则的运动途径,不同的音效,或者不同的颜色、不同的位置。
先产生一个不是从一开始的随意数,然后把差值从random()中减去。如,表达式random(n + 1) - 1 产生从0到指定n中的一个随意数。
例:该语句给变量diceRoll指定一个随意值
set diceRoll = random(6) + random(6)
下边的语句给通道10产生随意的前景色
sprite(10).forecolor = random(256) - 1
下边的程序使可以随意选择一个电影的两个片段进行播放
on SelectScene
    if random(2) = 2 then
        play frame "11a"
    else
        play frame "11-b"
    end if
end
以下的语句产生在一定范围内特别的数:
这一语句随意产生包含在5到100之间且是5的倍数的一个数
theScore = 5 * random(20)
下边的语句产生包含在0到100之间且是5的倍数的一个数
theScore = 5 * (random(21) - 1)
下边的语句产生包含在-10到10之间
dirH = random(21) - 11
下边的语句产生含有两个小数点的浮点数:
the floatPrecision = 2
theCents = random(100)/100.0 - .01

rawNew()
语法:    parentScript.rawNew()
rawNew(parentScript)

描述:函数,在还没有调用父剧本的on new 程序前,产生一个子对象。这样,在电影中,在对子对象初始化前便可以产生子对象。调用on new 来初始化其中一个没有初始化子对象的属性,这对你为以后产生大量的子对象是非常有用的。
    例:该语句在没有初始化前从父代剧本CarParentScript中产生一个子对象RedCar 。
RedCar = script("CarParentScript").rawNew()

以下语句对RedCar:进行初始化
RedCar.new()
参考:new(),script

recordFont
语法:    recordFont(whichCastMember, font {[,face]} {,[bitmapSizes]} {,characterSubset} {, userFontName})
    描述:命令;将一个字体一个演员,该字体被嵌入,用户就可以象利用装在系统的字体一样利用它。在利用recordFont前,必须利用new()命令产生一个空字体演员
* font——被打包的字体的名称。
* face——字体类型列表,可取值可以是 #plain, #bold, #italic. If you do not provide a value for this argument, #plain is used.
*bitmapSizes——位图字体大小的列表,该参数可以不设置。如果你省略该参数值,便不产生位图。这些位图在比较小的时候(小于14),看起来效果比好,但需要更多的内存。
CharacterSubset——被编辑的字符串。只有被指定的字符才可以利用该字体。如果该参数被设置,所有的字符都被编译 。如果只有当前的字符被编译,而有没编译的也在使用,那么显示的将是一个空框
*userFontName——最近被标记的字体演员名称
该命令在一个演员产生一个Shock Font 字体;从指令返回的值判断操作是否成功。零表示成功。
例:该语句用两个参数将字体Shock Font 嵌入一个演员里
myNewFontMember = new(#font)
recordFont(myNewFontMember, "Lunar Lander")

以下语句指定位图的尺寸,并产生字体字符。
myNewFontMember = new(#font)
recordfont(mynewmember,"lunar lander", [], [14, 18, 45], "Lunar Lander Game High \Score First Last Name")

注:当字体被嵌入后, Since recordFont resynthesizes the font data rather than using it directly, there are no legal restrictions on Shock Font distribution.
参考:new()

rect()
语法:rect (left, top, right, bottom)
rect(point1, point2)
描述:函数和数据类型,定义一个矩形。rect(left, top, right, bottom)通过指定矩形的左、上、右和下四边而确定一个矩形。左右两个值是舞台左边到矩形的边的象数值,上下两个值是舞台上边到矩形的边的象数值
rect(point1, point2) 格式用 point1 和 point2确定矩形。你可以用列表语法或属性语法确定以下的两个语句的作用是相等的:
targetWidth = targetRect.right - targetRect.left
targetWidth = targetRect[3] - targetRect[1]
你可以改变矩形的形状。如果你在矩形添加一个值,Lingo将为矩形的每个元素添加它的值。
请参考Director目录下Learning\Lingo Examples 一个移动矩形的例子。
例:这个语句设置举行newArea举行左为100,上为150,右为300,下为400。
set newArea = rect(100, 150, 300, 400)

以下语句用点和secondPoint设定矩形newArea,firstPoint的坐标是 (100, 150);secondPoint的坐标是 (300, 400)。该语句与上一语句产生的效果一样
put rect(firstPoint, secondPoint)

该语句改变矩形的值:
put rect(0,0,100,100) + rect(30, 55, 120, 95)
-- rect(30, 55, 220, 195)
put rect(0,0,100,100) - rect(30, 55, 120, 95)

-- rect(-30, -55, -20, 5)

该语句在矩形的没边添加80个象素
put rect(60, 40, 120, 200) + 80
-- rect(140, 120, 200, 280)

该语句为矩形进行1/3缩小
put rect(60, 40, 120, 200) / 3
-- rect(20, 13, 40, 66)
参考:point(),quad

rect (image)
语法:    imageObject.rect
    描述:只读属性,返回指定图象矩形边的值。位置与左上角的值无关,因为,左边和上边的值总为零,右边和下边的值为图象的宽和高
例:该语句在消息窗口返回演员Sunrise矩形的值为300 x 400 象素。
put member("Sunrise").image.rect
-- rect(0, 0, 300, 400)
以下程序监视演员表中第一到第五十个演员中演员类型为位图(bitmap)的矩形的值:
on showAllRects
repeat with x = 1 to 50
if member(x).type = #bitmap then
put member(x).image.rect && "-" && member(x).name
end if
end repeat
end

参考:    height, width

rect (member)
语法:member(whichCastMember).rect
the rect of member whichCastMember
描述:演员表属性。指定演员表中左、上、右和下边位置。
例如一个位图,它的左上角的位置是确定的,我们可以在窗口中改变它的值。
对于Xtra演员,rect 演员属性是一个矩形,它的左上角是(0,0)。
Director的Java播放器不支持rec演员属性。
该属性能被读取,只有field(域)演员的该属性可以被设置。
例如,以下显示第20个演员位图的位置:
put member(20).rect
又例如,以下语句设置位图演员Banner的该属性:
member("Banner").rect = rect(100, 150, 300, 400)
参考    rect(),rect (sprite)
(译者注:上边提到只对域演员可以设置,但例子中有对位图设置的,我尝试了一下,好象不可以)

rect (sprite)
语法:sprite whichSprite.rect
the rect of sprite whichSprite
描述:角色属性;指定图形化的角色(如位图、矢量图、电影或数字视频)在舞台上的的左、上、右和下边的位置。
该属性可以读取和设置。
例:以下语句显示通道20角色的位置:
put sprite(20).rect

rect (window)
语法:    window whichWindow.rect
the rect of window whichWindow

描述:窗口属性,指定窗口的左、上、右、下边的位置,
如果窗口矩形的尺寸比舞台小,那么就不可以改变
对窗口进行缩放,设置drawRect 或sourceRect 属性
该属性可以读取,也可以设置。
例:以下语句显示窗口Control Panel:(控制面板)的位置:
put window("Control Panel").rect
参考:drawRect, sourceRect

编辑历史:[这消息被dexn编辑过(编辑时间2001-01-21 22:51:01)]


dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#52001/1/21 22:54:51
qtRegisterAccessKey
qtUnRegisterAccessKey
翻译的很不好,谁可以帮忙从新翻译?
randomSeed、ref、regPoint、regPointVertex也翻译不好(没有贴了)望帮个忙,明天就回家了,一个礼拜将不能来,请原谅。



singingboy

职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2000/11/24 13:17:37
#62001/2/5 14:42:38
哇!很高兴见到你,终于完成了!合作愉快!
有时间的话,我们可以互相校勘一下!



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#72001/2/6 17:31:26
合作愉快!
没问题,
我还有几个,有空得把他啃下来!