主题:  第8组halt~idleLoadMode

davidwee

职务:普通成员
等级:1
金币:0.0
发贴:12
#12001/2/12 14:12:53
halt

语法
halt
描述
命令;退出当前句柄以及所有调用它的句柄并停止编辑期间的电影或运行期间的项目文件。
实例
这个语句检查目前可用内存是否小于50k,如果小于,则退出所有调用它的句柄并停止播放影片。
if the freeBytes < 50*1024 then halt
参见
abort, exit, pass, quit


handler()

语法
scriptObject.handler(#handlerSymbol)
描述
如果指定的scriptObject包含一个名称为#handlerSymbol的句柄则返回一个TRUE值,否则返回一个FALSE值。scriptObject必须是一个父脚本、子对象或行为。
实例
以下语句调用一个对象上存在的句柄:
if spiderObject.handler(#pounce) = TRUE then
spiderObject.pounce()
end if
参见
handlers(), new(), rawNew(), script


handlers()

语法
scriptObject.handlers()
描述
该函数返回指定的scriptObject中的一系列句柄。每个句柄表现为列表中的一个符号。此函数用于调试电影。
注:你只能通过成员的script属性,而不能直接得到一个脚本演员的句柄。
实例
这个语句在消息窗口中显示子对象RedCar的句柄表:
put RedCar.handlers()
-- [#accellerate, #turn, #stop]
实例
这个语句在消息窗口中显示父脚本成员CarParentScript的句柄表:
put member("CarParentScript").script.handlers()
-- [#accellerate, #turn, #stop]
参见
handler(), script


height

语法
member(whichCastMember).height
the height of member whichCastMember
imageObject.height
sprite(whichSprite).height
the height of sprite whichSprite
描述
演员,图像对象和精灵属性;对于矢量、Falsh、动态GIF、位图和形状演员,决定演员在舞台上显示的像素高度。
对于演员,只对位图和形状演员有效。此属性仅能测试不能设置。
对于图像对象,此属性仅能测试不能设置。
对于精灵:设置精灵高度将自动地设置精灵的拉伸属性为TRUE。对于这个由Lingo设置到当前精灵的值,此精灵必须是一个木偶。此属性设置和测试。
实例
这个语句将演员Headline的高度值赋以予变量vHeight:
vHeight = member("Headline").height
实例
这个语句精灵10的高度为26个像素:
sprite(10).height = 26
实例
这个语句将精灵(I+1)的高度值赋以予变量vHeight:
vHeight = sprite(i + 1).height
参见
height, rect (sprite), width


hilite (命令)

语法
fieldChunkExpression.hilite()
hilite fieldChunkExpression
描述
命令;高亮(选择)指定块的域精灵,可以是任何Lingo允许定义的块,如字符,字或行。在Macintosh中,高亮颜色在颜色控制面板中设置。
实例
这个语句高亮域演员Comments中和第四个单词:
member("Comments").word[4].hilite()
实例
这个语句使高亮显示于myRecipes域中的文字非高亮显示:
myLineCount = member("myRecipes").line.count
member("myRecipes").line[myLineCount + 1].hilite()
参见
char...of, item...of, line...of, word...of; delete, mouseChar, mouseLine, mouseWord; field;
selection() (function); selEnd, selStart


hilite (演员属性)

语法
member(whichCastMember).hilite
the hilite of member whichCastMember
描述
演员属性;确定由按钮工具建立的复选框或单选框是选中(TRUE)或是没选中(FALSE,默认)。
如果whichCastMember是一个字符串,它指定演员的名称。如果是一个整数,它指定的则是演员号。
此属性可测试和设置。
实例
这个语句检查按钮成员Sound on是否选择中,如是,打开声音1通道并将声音调到最大:
if member("Sound on").hilite = TRUE then sound(1).volume = 255
实例
这个语句使用Lingo通过设置powerSwitch的hilite成员属性为真来选中此按钮成员:
member("powerSwitch").hilite = TRUE
参见
checkBoxAccess, checkBoxType


hitTest()

语法
sprite(whichFlashSprite).hitTest(point)
hitTest(sprite whichFlashSprite, point)
描述
函数;指出一个Flash电影的哪一部分直接显示在Director舞台的指定位置上。这个Director舞台位置表示为一个Director点值,例如point(100,50)。hitTest函数返回这些值:
#background-一个Flash电影精灵背景内指定的舞台位置。
#normal-一个填充对象内指定的舞台位置。
#button-一个按钮有效区域内指定的舞台位置。
#editText-一个Flash可编辑文本区域内指定的舞台位置。
实例
此帧脚本检查鼠标是否停留在通道5中的一个Flash电影精灵内的一个按钮上,如是,脚本设置一个文本域来显示一个状态信息:
on exitFrame
if sprite(5).hitTest(the mouseLoc) = #button then
member("Message Line").text = "Click here to play the movie."
updateStage
else
member("Message Line").text = ""
end if
go the frame
end


HMStoFrames()

语法
HMStoFrames(hms, tempo, dropFrame, fractionalSeconds)
描述
函数;转换电影中标准的时、分、秒到同等数量的帧或转换时、分、秒数到时间如果设置tempo 参数为1(1帧=1秒)。
hms-以sHH:MM:SS.FFD格式指定时间的串表达式,其中:
s 一个字符用于时间小于零的情况,或一个空格用于时间大于或等于零的情况。
HH 小时。
MM 分钟。
SS 秒。
FF 如fractionalSeconds为TRUE则表示小数位的秒数,否则表示帧数。
D 若dropFrame为TRUE则使用D,否则为空格。
tempo-指定每秒帧数。
dropFrame-指定帧是否为drop帧(TRUE,FALSE)的逻辑表达式(TRUE,FALSE)。如果串hms以字母d结束,则时间作为一个drop帧,而不管dropFrame的值如何。
fractionalSeconds-指示秒后面数值所表示意义的逻辑表达式;它们可以是四舍五入到第一个百分数的小数部分的秒数(TRUE)或是剩余的帧数(FALSE)。
实例
这个语句指出一个30帧每秒的影片在1分30.1秒时间中的帧数:dropFrame与fractionalSeconds参数都没有使用。
put HMStoFrames(" 00:01:30.10 ", 30, FALSE, FALSE)
-- 2710
实例
这个语句转换600秒为分钟:
>> put framesToHMS(600, 1,0,0)
>> -- " 00:10:00.00 "
实例
这个语句转换一个半小时为秒钟:
>> put HMStoFrames("1:30:00", 1,0,0)
>> -- 5400
参见
framesToHMS()


hold

语法
sprite(whichFlashSprite).hitTest(point)
hold sprite whichFlashSprite
描述
Flash命令;停止在当前帧中播放的Flash电影,但所有声音仍继续播放。
实例
这个帧脚本停止在通道5至10中的Flash电影精灵的播放,但允许声音继续播放:
on enterFrame
repeat with i = 5 to 10
sprite(i).hold()
end repeat
end
参见
movieRate, pause (movie playback)


hotSpot

语法
member(whichCursorCastMember).hotspot
the hotspot of member whichCursorCastMember
描述
光标成员属性;指定水平和垂直的像素点位置以描述在一个彩色动画光标成员whichCursorCastMember中的热点。Director使用此点来跟踪光标在屏幕上的位置(如,它返回用于Lingo函数mouseH和mouseV的值)并确定何时产生一个rollover(发出一个mouseEnter消息)事件。
光标的左上角为点(0,0),是缺省的hotSpot值。
试图将热点设置于光标之外将导致一个错误。
此属性可测试和设置。
实例
此句柄设置一个32*32的热点光标(成员号在变量cursorNum中)到光标的中心:
on startMovie
member(cursorNum).hotSpot = point(16,16)
end


hotSpotEnterCallback

语法
sprite(whichQTVRSprite).hotSpotEnterCallback
the hotSpotEnterCallback of sprite whichQTVRSprite
描述
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此
QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所进入的热点的ID
清除调用,设置此属性为0。
为避免性能损失,仅在需要时设置一个callback属性。
此属性可测试和设置。
参见
hotSpotExitCallback, nodeEnterCallback, nodeExitCallback, triggerCallback


hotSpotExitCallback

语法
sprite(whichQTVRSprite).hotSpotExitCallback
the hotSpotExitCallback of sprite whichQTVRSprite
描述
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此
QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所离开的热点的ID
清除调用,设置此属性为0。
为避免性能损失,仅在需要时设置一个callback属性。
此属性可测试和设置。
参见
nodeEnterCallback, nodeExitCallback, triggerCallback


HTML

语法
member(whichMember).HTML
描述
演员属性;访问文本和标记以控制在一个HTML格式的文本演员中的文本布局。
此属性可测试和设置。
实例
这个语句显示在文本演员Home Page中的HTML格式信息到一个消息窗口中:
put member("Home Page").HTML
参见
importFileInto, RTF


hyperlink

语法
chunkExpression.hyperlink
描述
文本演员属性;返回文本演员中指定块表达式中的超级链接字符串。
此属性可测试和设置。
检索此属性时,包含chunkExpression的第一个字符将被使用。
超级链接不会重叠(即使是部分的重叠)。在一个已存的链接上设置超级链接,将会用一个新的来替换它。
设置超级链接为空字符串可删除它。
实例
这个句柄在文本演员MacroLink中的第一个单词上创建一个连接到Macromedia网站的超级链接:
on startMovie
member("MacroLink").word[1].hyperlink = \
"http://www.macromedia.com"
end
参见
hyperlinkRange, hyperlinkState


on hyperlinkClicked

语法
on hyperlinkClicked me, data, range
statement(s)
end
描述
系统消息和事件句柄;用于确定何时一个超链接被真正地点击。
此事件句柄有如下参数:
me-用在行为中以标识精灵实例
data-超级链接自己的数据;编辑文本演员时在文本检查器中输入的字符串
range-文本中超级链接的字符范围(它可以使用语法member Ref.char[range[1]..range[2]]以取得自己的文本范围)
此句柄可作为一个行为脚本关联到一个精灵。不要将此句柄放到一个演员脚本中。
实例
此行为显示一个链接以检查被单击的超级链接,如需要则转到一个URL,并将这个链接的文本输出到一个消息窗口中:
property spriteNum
on hyperlinkClicked me, data, range
if data starts "http://" then
goToNetPage(data)
end if
currentMember = sprite(spriteNum).member
anchorString = currentMember.char[range[1]..range[2]]
put "The hyperlink on"&&anchorString&&"was just clicked."
end


hyperlinkRange

语法
chunkExpression.hyperlinkRange
描述
文本演员属性;返回包含块描述的第一个字符的超链接的范围。
此属性可测试和设置。
如同hyperLink和hyperLinkState,返回的链接范围包含chunkExpression的第一个字符。
参见
hyperlink, hyperlinkState


hyperlinks

语法
chunkExpression.hyperlinks
描述
文本演员属性;返回一个包含所有指定文本演员块的超级链接范围的线性表。每个表现为线性表的范围包含两个元素,一个链接的起始字符和一个终止字符。
实例
这个语句返回文本演员Glossary的所有链接到消息窗口中:
put member("Glossary").hyperlinks
-- [[3, 8], [10, 16], [41, 54]]


hyperlinkState

语法
hyperlinkRange 232
textChunk.hyperlinkState
描述
文本演员属性;包含此超级链接的当前状态。可能的状态值为: #normal, #active, 和#visited。
此属性可设置和测试。
如同hyperLink和hyperLinkRange,返回的链接范围包含chunkExpression的第一个字符。
实例
此句柄检查被单的链接是否为一个web地址。如是,超级链接文本的状态设置为#visited,电影切换到这个web地址。
property spriteNum
on hyperlinkClicked me, data, range
if data starts "http://" then
currentMember = sprite(spriteNum).member
currentMember.word[4].hyperlinkState = #visited
goToNetPage(data)
end if
end
参见
hyperlink, hyperlinkRange


on idle

语法
on idle
statement(s)
end
描述
系统消息和事件句柄;包含当电影无其它任何事件处理时的语句,可用于希望Lingo频繁处理的语句,如更新全程变量和显示当前电影情况的语句。
因为在on idle句柄中的语句会被频繁地运行,最好不要将费时的Lingo语句写入其中。
好的方式是需要时将on idle句柄置于帧脚本而不是电影脚本中。
Director可以在空闲时加载内部或外部成员。不过,它不能在空闲时加载已连接的演员。
idle消息仅传送到帧和电影脚本中。
实例
下面句柄在无其它任何句柄处理时更新显示的时间:
on idle
member("Time").text = the short time
end idle
参见
idleHandlerPeriod


idleHandlerPeriod

语法
the idleHandlerPeriod
描述
电影属性;确定电影发送一个idle消息的最大次数。缺省值为1,它告诉电影每秒最多发送60次idle消息。
当播放头进入一个帧时,Director开始一个计时器,在舞台上重绘适当的精灵,并产生一个enterFrame事件。然后,如果所设置的时间到达了,Director 产生一个exitFrame事件并进入到下一帧,如果此帧的时间数还没到,Director将周期性地产生一个idle消息直到达到所设置的时间数。idle事件产生的时间由idleHandlerPeriod所决定。
可以设置的idleHandlerPeriod是:
0-可能的最大idle消息数
1— 每秒60次
2— 每秒30次
3-每秒20次
n-每秒60/n次
每帧的idle事件次数也取决于电影的帧速度和其它行为,包括是否有Lingo在执行。如果速度为60fps且idleHandlerPeriod 值为1,每帧将产生一个idle事件。如果为20fps,则每秒产生3个idle事件。Director的idle时间结果不包含当前任务的执行且不产生任何的事件。
另一方面,如果idleHandlerPeriod属性设置为0且帧速特别慢,将有数千个idle事件产生。
实例
下面语句设置每秒钟产生的最多idle事件数:
the idleHandlerPeriod = 60
参见
idleHandlerPeriod, idleLoadDone(), idleLoadMode, idleLoadTag, idleReadChunkSize


idleLoadDone()

语法
idleLoadDone(loadTag)
描述
函数;报告所给标记的所有演员是否已加载(TRUE)或还没加载(FALSE)。
实例
下面语句判断如果标记为20的演员已加载则播放电影“on idle”:
if idleLoadDone(20) then play movie("on idle")"
参见
idleHandlerPeriod, idleLoadMode, idleLoadPeriod, idleLoadTag, idleReadChunkSize


idleLoadMode

语法
the idleLoadMode
描述
系统属性;依照下列值确定idle期间preLoad和preLoadMembe命令何时试图加载演员
0-不执行idle加载
1-如帧之间有空闲时间则执行加载
2-在idle事件期间执行idle加载
3-以最频繁的速度执行idle加载
idleLoadMode系统属性只工作于与preLoad和preLoadMember关联的命令。
使用idle加载的演员仅在电影使用它们时才解压缩。当电影播放时,解压演员可能会有一个明显的停顿。
实例
下面语句使电影试图以最频繁的速度来加载由preLoad和preLoadMember命令指定的演员:
the idleLoadMode = 3
参见
idleHandlerPeriod, idleLoadDone(), idleLoadPeriod, idleLoadTag, idleReadChunkSize

编辑历史:[这消息被davidwee编辑过(编辑时间2001-02-15 18:16:22)]
[这消息被davidwee编辑过(编辑时间2001-02-15 18:16:33)]
[这消息被davidwee编辑过(编辑时间2001-02-15 18:17:04)]
[这消息被davidwee编辑过(编辑时间2001-02-19 10:21:07)]


cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
#22001/2/15 13:50:43
我分配的任务是译8组的后半部分,这样吧,我从后面译上来,咱们汇总,我们两个都一直译!合作愉快!



cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
#32001/2/15 15:13:05
--哈哈,我已经完工,请哪位仁兄校正一下,并排好版!
Lingo
Lingo
(第8组后半部分)

1、isVRMovie

语法:member(whichCastMember).isVRMovie
isVRMovie of member whichCastMember
sprite(whichSprite).isVRMovie
isVRMovie of sprite whichSprite

描述:QuickTime角色或精灵的一个属性,用于确定一个QuickTime VR Movie角色是否已经被下载下来了(返回true),或者一个角色或精灵是否是一个QuickTime VR Movie(返回false)。测试这个属性比用# quickTimeMedia类型检测时返回错误的信息要好。这个属性只能被测试,不能被用于设置或修改。

实例:这个句柄(函数)用于检测一个精灵或角色是否是一个QuickTime movie影片。如果是,这个函数进下步检测它是不是一个QuickTime VR Movie,并在任何情况下都返回一个提示警告。

on checkForVR theSprite
    if sprite(theSprite).member.type = #quickTimeMedia then
        if sprite(theSprite).isVRMovie then
            alert "This is a QTVR asset."
        else
            alert "This is not a QTVR asset."
        end if
    else
        alert "This is not a QuickTime asset."
    end if
end

2、itemDelimiter

语法:the itemDelimiter

描述:系统属性。用于提示一个“item”(域文本中的一个由分隔符分开的一个单元)的分隔标记。你可以通过设置itemDelimiter为反斜杠“\”(在windows中)或设置为冒号“:”(在Mac中)来分析文件名。当一个冒号设置为分隔符,Lingo可以使用最后一个item来判断由Macintosh的路径名构成的文字块中的最后一个item,从而判断文件名。

实例:这个句柄用于找出Macintosh路径名中的最后一部分。该句柄最初记录下原有的分隔符,然后改变分隔符为冒号“:”,当冒号为分隔符时,Lingo可以确定路径名中的最后一个部分,并在退出之前,将分隔符改回原来的分隔符。

on getLastComponent pathName
    save = the itemDelimiter
    the itemDelimiter = ":"
    f = the last item of pathName
    the itemDelimiter = save
    return f
end

3、on isOKToAttach

语法:on isOKToAttach me, spriteType, spriteNum

描述:内置句柄。你可以把这个句柄加入到一个行为中,用于检查这个行为隶属的精灵的类型,并防止不恰当的类型的精灵隶属于该行为。当这个行为附着于一个精灵时,这个句柄开始执行,并且Director向这个句柄传递两个参数:精灵号和精灵类型。这个句柄在on getPropertyDescriptionList句柄运行之前运行。Lingo的编定者可以检测两种类型的精灵:#graphic和#script。前者包括所有的图形角色,比如说hapes, bitmaps, digital video, text等等;后者表示行为已经隶属于脚本通道。对于每个精灵类型,这个句柄必须返回true或false。True表示该行为可以附着在这个精灵上,false则禁止这个脚本附着到精灵上。如果这个行为没有包含on isOKToAttach这个句柄,那么这个脚本可以附着在任何精灵上。这个句柄只能发生在刚开始行为附着到精灵或脚本通道时发生,并且在这个精灵发生其它变化时不再发生。

实例:下面的语句用于在行为附着在精灵上时检查精灵的类型,并且除了shape类型之外都返回ture,遇到脚本通道返回false。

on isOKToAttach me, spriteType, spriteNum
    case spriteType of
        #graphic: -- any graphic sprite type
            return sprite(spriteNum).member.type <> #shape
            -- works for everything but shape cast members
        #script: --the frame script channel
            return FALSE -- doesn't work as a frame script
    end case
end

4、invertMask

语法:member(whichQuickTimeMember).invertMask
the invertMask of member whichQuickTimeMember

描述:QuickTime角色的一个属性。决定是否让Director用白色(true)的像素点或是用黑色的像素点来生成QuickTime的掩摸(Mask)。这个属性既能进行测试,也能进行设置。

实例:下面的语句用于将名为Starburst的QuickTime movie角色的invertMask属性设置成相反的值。

on toggleMask
    member("Starburst").intertMask = not member("Starburst").intertMask
end

参见:mask

5、interface( )

语法:xtra("XtraName").interface()
interface(xtra "XtraName")

描述:函数,用于返回一个由回车符作为分隔符的Xtra的属性和方法的清单。它用来代替已经弃用的mMessageList函数。

实例:下面的语句在Message窗口中显示QuickTime Asset Xtra中所用到的所有函数。

put Xtra("QuickTimeSupport").interface( )

6、integer( )

语法:(numericExpression).integer
integer(numericExpression)

描述:函数,将numericExpression的值取整,另外,你可以用函数string()将一个整数强制转换为一个字符串。

实例1:这条语句将3.75转换为最接近的整数

put integer(3.75)
-- 4

实例2:这条语句将括号中的值四舍五入,它对精灵的locH属性提供了一个可用的值,因为这个属性需要一个整数。

sprite(1).locH = integer(0.333 * stageWidth)

参见:    float(),string()

7、inside()

语法:point.inside(rectangle)
inside(point, rectangle)

描述:函数,用于确定指定的点是否在指定的四边形中。是则返回true,不是,是返回false。

实例:下面的语句判断指定的中心点是否在指定的四边形Zone中,并在Message中显示结果。

put Center.inside(Zone)

参见:map(),mouseH, mouseV, point()

8、the inlineImeEnabled

语法:the inlineImeEnabled    

描述:全局属性,决定是否打开Director内联的IME特性。当设值为真时,这个属性允许用户在日语系统中的text和field中直接输入双字节的字符、脚本和消息窗口。这个属性可以测试和设置。默认值是在Director的一般参数中设置的。

9、inflate

语法:rectangle.Inflate(widthChange , heightChange)
inflate (rectangle, widthChange, heightChange)

描述:命令,用于改变与长方形的中心相关的长方形的尺寸。包括水平(改变宽度widthchange)的和垂直(改变高度heightchange)的。每个方向的变化都是你所指定数字的两倍。比如说,将一个长方形的宽改为15,则使长方形的增加了30个像素。水平或垂直的小于0的数字将会减少长方形的尺寸。

实例1:这个语句将长方形的宽增加4个像素,长增加两个像素。

rect(10, 10, 20, 20).inflate(2, 1)
-- rect (8, 9, 22, 21)

实例2:这个语句将长方形的长和宽都减少20个像素。

inflate (rect(0, 0, 100, 100), -10, -10)
-- rect (10, 10, 90, 90)

10、in

参见:number (characters), number (items), number (lines), number (words)

11、imageQuality

语法:member(whichMember).imageQuality
the imageQuality of member whichMember

描述:位图角色的一个属性,当角色的imageCompression属性设置为#jpeg的时候,显示图形的压缩水平。可接受的值在0——100之间。设置为0会使图片的质量最差,但是压缩比率最高;设置为100会使图片的质量最好,但是压缩的比率最低。在将电影保存为shockwave时,这个属性只有在编程时才可以进行设置,并且只对成员角色有效,不对精灵有效。压缩后的图像可以通过属性监测器中的位图栏的Otimize in Fireworks按纽中预览,或是在文件菜单中的在浏览器中预览命令中进行预览。如果一个位图成员的压缩属性设置成为#MovieSetting,那么整个电影属性中的movieImageQuality属性会代替imageQuality属性。

参见:imageCompression,movieImageCompression, movieImageQuality

12、imageCompression

语法:member(whichMember).imageCompression
the imageCompression of member whichMember

描述:位图成员属性,指出当电影存为shockwave格式时,Director中位图成员的压缩类型。这个属性可以测试和设置,并且在运行时不起任何作用。它的值可以是以下列表中的任何一个。

     含意
#movieSetting     使用电影本身的压缩设置,其值存在
电影的movieImageCompression属性
中,这是图像格式的默认值,不受标
准压缩的限制(见下面)。
#standard     使用Director的内置的标准压缩格式。
#jpeg     使用jpeg的压缩格式。见imageQuality

你通常是在属性监测器中的位图栏中设置这个属性。但是,如果你想一次性对大量的图像进行设置,你可以在运行时使用lingo的这条语句。如果一个成员角色是8-bit或更低位的图形,不能进行jpeg形式的压缩,或者一个成员角色是一个外部角色,那么只有#standard标准压缩属性可用。不支持jpeg压缩格式的图像包括GIF、8-bit位深图形或更低位的图形。

实例:这条语句在消息窗口中显示成员Sunrise的imageCompression属性。

put member("Sunrise").imageCompression
-- #movieSetting

参见:imageQuality, movieImageCompression, movieImageQuality

13、image

语法:whichMember.image
(the stage).image
window(windowName).image

描述:这个是图形对象(包括位图和文本角色)、舞台和窗口的一个属性。你可以获取和设置角色成员的image属性,但是对于舞台和窗口,只能获取而不能设置。设置成员的image属性会马上改变图形成员的内容。然而,当你从角色或窗口中获取这个属性时,Director会自动创建一个参照(实际上是一个快照)。如果你对图形作了改动,则角色成员或窗口会立即改动。如果你计划对一个项目的image属性做大量的改变,那么拷贝(用函数duplicate())这个项目的image属性到一个新的图形对象中,对这个对象作你想做的改变,然后将以前项目的图像设置成新的图形对象,这样会更快一些。对于非位图成员,使用duplicate()函数始终要快一些。

实例1:这条语句将图像成员originalFlower放到一个新的成员newFlower中去。

member("newFlower").image = member("originalFlower").image

实例2:下面的语句将舞台中图像的参照存入变量myImage中,然后将生成的图像放入到成员flower中,flower要是图形成员才行。

myImage=(the stage).image
member("flower").image = myImage

参照:setPixel(),draw(),image(),fill(),duplicate() (image function),copyPixels()

14、if

语法:if logicalExpression then statement
if logicalExpression then statement
else statement
end if
if logicalExpression then
         statement(s)
end if
if logicalExpression then
         statement(s)
else
         statement(s)
end if
if logicalExpression1 then
         statement(s)
else if logicalExpression2 then
         statement(s)
else if logicalExpression3 then
         statement(s)

end if
if logicalExpression1 then
         statement(s)
else logicalExpression2
end if

描述:关键词,if . . .then 结构判断指定的逻辑表达式

** 如果条件是真值,则执行紧接着的语句
** 如果条件时非真值,则执行else中的语句,如果在else中没有语句或是没有else语句,则退出if. . . then结构。
** 所有的条件都必须被判断,不论遇没遇见起始条件,程序都会执行。这样,创建运行更快的语句可以使用if. . . then结构的嵌套,并且使用分行语句,而避免将所有的语句都放在第一行去判断。

当条件是一个属性时,lingo会自动地检查这个属性是否是真值,你不需要明确地在属性的后面加上true的短语。Else 中的语句是可以选择运行的。如果使用多个then-分支语句,或是else-语句,则一定要以end if作为结束语。Else-语句部分总是相当于前面的if语句部分,这样,有时你就必须包括一个没有任何语句的else部分,来与固定的if语句相关联。

注意:一个快速的检查脚本窗口中的语句是否正确地配对的方法是按TAB键,这会迫使Director去检查打开的脚本窗口,并检查其中的语句是否正确地缩进。任何错误的配对都会马上显示出来。

实例1:这个句柄会检查Command键和Q键是否同时被按下,如果是,则执行后续的语句。

on keyDown
    if (the commandDown) and (the key = "q") then
        cleanUp
        quit
    end if
end keyDown

实例2:比较下面的两个结构和执行结果。第一个结构同时判断两个条件,并且还要测量时间,会花一段时间;第二个结构判断第一个条件,第二个条件仅当第一个条件为真时才进行判断,这样,就可以加快语句执行的速度。

spriteUnderCursor = rollOver()
if (spriteUnderCursor > 25) AND MeasureTimeSinceIStarted() then
    alert "You found the hidden treasure!"

end if

The alternate, and faster construction would be:
spriteUnderCursor = rollOver()
if (spriteUnderCursor > 25) then
    if MeasureTimeSinceIStarted() then
        alert "You found the hidden treasure!"
    end if
end if

参照:case

15、idleLoadTag

语法:the idleLoadTag

描述:系统属性,用于当计算机等待的时候,标记或识别等待加载的成员队列的数量。这个属性为你对欲加载的一组成员进行识别提供了方便。这个属性可以用于测试和设置(用你自己的数字),

实例:这条语句设置数字10作为等待加载的标签。

the idleLoadTag = 10

参照:idleHandlerPeriod,idleLoadDone(),idleLoadMode,idleLoadPeriod,idleReadChunkSize

16、idleLoadPeriod

语法:the idleLoadPeriod

描述:系统属性,用于确定Director加载角色时等待加载的时间单位ticks的数量。默认值是0,以通知Director能以尽可能快的速度来加载成员。

实例:这条语句通知Director每隔半秒钟(30 ticks)就尝试加载欲加载成员队列中的任何一个成员。

set the idleLoadPeriod = 30

参照:idleLoadDone(),idleLoadMode,idleLoadTag,idleReadChunkSize

17、idleReadChunkSize

语法:the idleReadChunkSize

描述:系统属性,用于确定在Director尝试从欲加载成员队列中加载成员时,能够加载的最大字节数。默认值是32K。这个属性可以被测试和设置。

实例:这条语句将Director尝试从欲加载成员队列中加载成员时,能够加载的最大字节数设置为500K。

the idleReadChunkSize = 500 * 1024

参照:idleHandlerPeriod,idleLoadDone(),idleLoadMode,idleLoadPeriod,idleLoadTag

18、ilk()

语法:ilk(object)
ilk(object, type)

描述:函数,用于确定对象的类型。

** 语句ilk(object)返回指定对象的类型值,是数值。如果对象是一个列表,返回#list;如果是一个属性列表,则返回#proplist。
** 语句ilk(object,type)将指定的对象类型同参数中的类型进行比较,如果相同则返回真值,如果不同,则返回假值。下表中列出了ilk()能够识别的所有类型。

对象类型    ilk(Object)返回值     ilk(Object, Type) 返回真值时的类型    举例
linear list    #list    #list or #linearlist    ilk ([1,2,3])
property list    #proplist    #list or #proplist    ilk ([#his: 1234, #hers: 7890])
integer    #integer    #integer or #number    ilk (333)
float    #float    #float or #number    ilk (123.456)
string    #string    #string    ilk ("asdf")
rect    #rect    #rect or #list    ilk (sprite(1).rect)
point    #point    #point or #list    ilk (sprite(1).loc)
color    #color    #color    ilk (sprite(1).color)
date    #date    #date    ilk (the systemdate)
symbol    #symbol    #symbol    ilk (#hello)
void    #void    #void    ilk (void)
picture    #picture    #picture    ilk (member (2).picture)
parent script instance    #instance    #object    ilk (new (script "blahblah"))
xtra instance    #instance    #object    ilk (new (xtra "fileio"))
member    #member    #member    ilk (member 1)
xtra    #xtra    #object    ilk (xtra "fileio")
script    #script    #object    ilk (script "blahblah")
castlib    #castlib    #object    ilk (castlib 1)
sprite    #sprite    #object    ilk (sprite 1)
sound    #sound    #object    ilk (sound "yaddayadda")
window    #window    #object    ilk (the stage)
media    #media    #object    ilk (member (2).media)

实例1:下面的ilk语句确定名为bids对象的类型。

Bids = [:]
put ilk( Bids )
-- #proplist

实例2:下面的ilk语句测试变量Total是否是一个列表,并在消息窗口中显示结果。

Total = 2+2
put ilk( Total, #list )
-- 0

在这个例子中,由于Total并不是一个列表,因此消息窗口中显示0,这个数字同false是等价的。

实例3:下面的例子测试一个名为myVarible的变量,在消息窗口中显示它之前验证它是否是一个Date类型的变量。

myVariable = the systemDate
if ilk(myVariable, #date) then put myVariable
-- date( 1999, 2, 19 )

19、image()

语法:image(width, height, bitDepth {, alphaDepth} {, paletteSymbolOrMember})

描述:函数,新建并返回一个新的指定了宽和高以及位深(有两个可选参数:alphaDepth和调色板对象paletteSymbolOrMember)的图形对象。位深可以是1、2、4、8、16、32;而对于alphaDepth的值,如果给出,则通常是针对32位的图像的,并且只能为0或8;而对于调色板对象(paletteSymbolOrMember),如果给出,则通常只针对于2、4、8位的图,并且既可以是调色板符号(比如说#grayscale),也可以是一个调色板成员。如果没有调色板指定,则使用电影的默认的调色板。由该函数创建的图形对象是独立的,并且不能参考任何的成员和窗口。要看一个完整使用image()函数的电影,查看在Learning\Lingo Examples中的电影image movie。

实例:这两条语句创建一个200 x 200 pixel,8-bit的图像并填充红色。

redSquare = image(200, 200, 8)
redSquare.fill(0, 0, 200, 200, rgb(255, 0, 0))

参照:palette,image,duplicate() (image function),fill()

20、imageEnabled

语法:sprite(whichVectorOrFlashSprite).imageEnabled
the imageEnabled of sprite whichVectorOrFlashSprite
member(whichVectorOrFlashMember).imageEnabled
the imageEnabled of member whichVectorOrFlashMember

描述:角色和精灵的属性。控制是否显示一个Flash对象或是一个向量图形,若是真值则显示(默认),若是假值则不显示。这个属性可以被测试和设置。

实例:下面的语句设置一个链接的Flash电影精灵在它第一次出现在舞台上时不可见,并且开始进驻内存,并且将它的精灵号存在一个全局变量gStreamingSprite中,并在以后的帧脚本中使用。

global gStreamingSprite
on beginSprite me
     gStreamingSprite = me.spriteNum
     sprite(gStreamingSprite).imageEnabled = FALSE
end

在电影后面的帧中,帧脚本检测由全局变量gStreamingSprite指定的Flash电影是否已经完全进入内存,如果没有,则电影一真处于循环之中,直到其全部进入内存。这时设置它的imageEnabled属性为真,这样这个精灵开始出现,并且使播放头移到后面的帧中。

global gStreamingSprite

on exitFrame me
    if sprite(gStreamingSprite).member.percentStreamed < 100 then
        go to frame
    else
        sprite(gStreamingSprite).imageEnabled = TRUE
        updatestage
    end if
end

21、importFileInto

语法:importFileInto member whichCastMember, fileName
importFileInto member whichCastMember of castLib whichCast, fileName
importFileInto member whichCastMember, URL

描述:命令,用于将whichCastMember指定的成员用filename指定的文件代替。这个命令在四种情况下非常有用。

** 当完成电影的时候,使用它可以嵌入外部的媒体文件,并在工程中编辑它。
** 当电影创建时用lingo创建一个新的通道时,用它可以为你新建的角色成员分配内容。
** 当从互联网中下载文件时,用它可以下载指定链接中的文件(url),并且设置链接媒体的名称。(然而,从网络上载入文件时,通常最有效的方式是用命令preloadNetThing先将文件下载到本地的硬盘上,然后再从本地的硬盘上读取该文件)
** 使用它通过格式化的和完整的链接导入RTF和HTML文档到文本角色成员中。

在工程中使用这个命令会迅速地消耗可用的内存,因此,如果可能的话,最好用同一个成员来导入数据。并且,这个命令不适用于由Director生成的java程序。要在由Director生成的applet电影的播放中改变一个图形或声音成员的内容,则要使这个成员与成员之间建立联系,然后,改变角色成员的filename属性。

注意:在shockwave中,你必须发出preloadNetThing命令,并且要等到这个文件完全下载完之后,你才能使用importfileinto来导入这个文件。而在Director和工程中,importFileInto能够为你自动下载文件。

实例1:这个函数指定一个含有一个gif文件的链接地址给变量tempURL,并用importFileInto命令将它下载到一个新的位图角色中。

on exitFrame
     tempURL = "http://www.dukeOfUrl.com/crown.gif"
    importFileInto new(#bitmap), tempUrl
end

实例2:这个语句将声音角色Memoery的内容换成声音Wind。

importFileInto member "Memory","Wind.wav"

实例3:这些语句从一个网址中下载一个外部文件到director应用程序的文件夹中,然后将其导入到声音成员Norma Desmond Speaks中去。

downLoadNetThing www.cbDeMille.com/Talkies.AIF, the applicationPath&"Talkies.AIF" \
importFileInto(member "Norma Desmond Speaks", the applicationPath&"Talkies.AIF")

参照:downloadNetThing,fileName (cast member property),preloadNetThing()

22、INF

描述:Lingo的返回值,表明指定的表达式的值是一个无穷大的值。

参照:NAN

23、ink

语法:sprite(whichSprite).ink
the ink of sprite whichSprite

描述1:精灵属性,确定由whichSprite指定的精灵的墨水效果是什么。如下:

0——原色;1——透明;2——反视;3——幻象;4——非原色;5——不透明;6——不反视;7——非幻象;8——粗糙;9——掩膜;32——混合;33——添加针;34——添加色;35——减少针;36——背景透明;37——浅光;38——减色;39——变暗;40——发亮;41——变黑

描述2:对于作为applet播放的电影,不同的类型的精灵的有效墨水效果是不同的,如下:

** 对位图精灵,有效的墨水效果是:0 (Copy),8 (Matte),32 (Blend),or 36 (Background transparent)
** 对于矢量图、Flash以及图形精灵,有效的墨水效果仅有:0、8、36。
** 对于域文本精灵,有效的墨水效果是0和36,播放器将Blend和Matte墨水视作背景透明。

在墨水效果是36时(背景透明),你是在通道中选择了一个精灵,并在工具栏窗口的背景色中选择了透明色作为背景。另外,你也可以通过设置backcolor来完成这项工作。如果你在播放头没有向前移动时设置了这个属性,那么你要使用updatestage命令来重绘舞台。如果你改变了精灵的一些属性,只需要在所有改动的后面用一条updatestage命令就行了。Ink 属性既可测试又可设置。

实例1:下面的语句将精灵3的ink值赋给变量currentInk

currentInk = sprite(3).ink

实例2:下面的语句将第i+1个精灵的墨水效果设置为8,代表matte效果。

sprite(i + 1).ink = 8

参照:backColor,foreColor

24、insertFrame

语法:insertFrame

描述:命令,复制当前帧及其所有内容。复制的帧会插入在当前帧的后面,并立即成为当前帧。这条命令仅能用于通道记录会话期间,和duplicateFrame函数有相同的功能。

实例:下面的句柄生成新的一帧,这帧的过渡窗口中给成员Fog添加了过渡效果,在其后面有一系列的空帧。参数numberOfFrames用来设置帧的数量。

on animBall numberOfFrames
    beginRecording
        the frameTransition = member ("Fog").number
        go the frame + 1
        repeat with i = 0 to numberOfFrames
            insertFrame
        end repeat
    endRecording
end

25、installMenu

语法:installMenu whichCastMember

描述:命令,用来把把指定的域文本成员whichCastMember定义为一个菜单。这个定制的菜单只有在电影播放时才会生效。要卸掉菜单,只需要将installMenu后的参数设置为0或干脆不要参数即可。这个命令不能建立分层菜单。怎样在域文本成员中定义菜单条目,参见词条Menu。要尽量避免多次改动菜单,因为这样会使系统资源受到影响。在Windows中,如果菜单太长,超过了屏幕,则只会显示在屏幕中的部分;而在Mac中,长的部分会自动卷曲。注意:在shockwave中不能使用菜单。

实例1:这条语句将域文本成员(成员号为37)安装为一个菜单。

installMenu 37

实例2:这条语句将域文本成员Menubar安装为一个菜单。

installMenu member "Menubar"

实例3:这条语句将installMenu安装的菜单除去。

installMenu 0

参照:menu

26、integerP()

语法:expression.integerP
(numericExpression).integerP
integerP(expression)

描述:函数,指出指定的表达式numericExpression是否是一个整数,是则返回1,否则返回0。IntegerP中的P是指判断。

实例1:这条语句判断3是否是一个整数,并在消息窗口中显示1(表示是一个整数)。

put(3).integerP
-- 1

实例2:这条语句判断3是否是一个整数。由于3加了两个引号,所以它不是一个整数,在消息窗口中会显示0。

put("3").integerP
-- 0

实例3:下面的语句检查域文本成员Entry中的字符是否是一个整数,如果不是,则显示一条警告消息。

if field("Entry").value.integerP = FALSE then alert "Please enter an integer."

参照:floatP(),integer(),ilk(),objectP(),stringP(),symbolP()

27、intersect()

语法:rectangle1. Intersect(rectangle2)
intersect(rectangle1, rectangle2)

描述:函数,用于检查两个长方形rectangle1和rectangle2相交时生成的新的长方形。

实例:下面的语句将长方形toolKit 和Ramp相交时生成的新的长方形赋于变量newRectangle。

参照:map(),rect(),union()

28、into

描述:这个代码存在于许多的lingo的结构语句中,比如put. . . into

29、isBusy()

语法:sound(channelNum).isBusy()

描述:函数,在指定的声音通道channelNum正在播放声音文件时返回true,否则返回false。要在完整的电影文件中查看这个命令的用途,请在目录Learning\Lingo Examples中找到Sound Control,并打开它。

实例:下面的语句检查在声音通道1中是否有声音在播放,如果有,则在field文本中显示“You should hear music now. ”,否则显示“The music has ended.”

if sound(1).isBusy() then
    member("field").text = "You should hear music now."
else
    member("field").text = "The music has ended."
end if

参照:pause() (sound playback),playNext(),queue(),status,stop() (sound)

30、isPastCuePoint()

语法:sprite(spriteNum).isPastCuePoint(cuePointID)
isPastCuePoint(sprite(spriteNum), cuePointID)
sound(channelNum).isPastCuePoint(cuePointID)
isPastCuePoint(sound(channelNum), cuePointID)

描述:函数,判断精灵或声音通道是否经过的指定的指示点。这个函数对支持能够加入指示点的媒体有效,这些媒体有:声音(WAV, AIFF, SND, SWA, AU)、QuickTime、Xtra文件。在一个精灵通道或声音通道中改变spriteNum或channelNum。Shockwave声音(swa)会在精灵通道中以精灵方式出现,但是它们在声音通道中播放声音。推荐你参照SWA声音精灵的精灵通道号码而不用它的声音通道号码。

通过参考的指示点来替换cuePointID:
** 如果cuePointID是一个整数,则在经过指示点是返回1,没有经过时返回0;
** 如果cuePointID是一个名称,则在经过指示点时返回其序号。

如果在精灵或声音中没有指定的cuePointID,则返回0。IsPastCuePoint返回的数字是基于精灵原媒体中的指示点所存在的绝对位置,比如说,如果一个声音经过了其指示点Main,尔后又经过了Main,isPastCuePoint两次都只会返回1,而不是2。当把isPastCuePoint的返回值作为一个布尔值时,则在指定的指示点cuePointID经过时返回true,否则返回false。

实例1:下面的语句在播放头三次经过指示点Chorus End时,停止播放声音。

if (isPastCuePoint(sound 1, "Chorus End")=3) then
    puppetSound 0
end if

实例2:下面的语句在成员field 2中显示关于声音通道1中的音乐播放信息。如果音乐还没有经过指示点climax,在field 2中会显示“This is the beginning of the piece”,否则显示“This is the end of the piece”。

if not sound(1).isPastCuePoint("climax") then
        member("field 2").text = "This is the beginning of the piece."
    else
        member("field 2").text = "This is the end of the piece."
end if

31、item...of

语法:textMemberExpression.item[whichItem]
item whichItem of fieldOrStringVariable
textMemberExpression.item[firstItem..lastItem]
item firstItem to lastItem of fieldOrStringVariable

描述:关键词,用于指定一系列item(条目)所组成的块中的某个条目。一个条目在这里是指由itemDelimiter属性所指定的分隔符所分隔出来的一系列字符串。参数whichItem、firstItem、lastItem是一些整数或整数表达式,它们用于指定条目的位置。这一系列的条目块可以是字符、词、条目和行在内的任何字符串。字符串的来源可以是text、field和含有字符串的变量。当指定的条目的末项超过了字符串中的条目的总共的数目,则字符串中的最后一个条目会被指定。

实例1:下面的语句将会查找字符串中的第三个条目(这个字符串由一系列的颜色名称组成),并将它们在消息窗口中显示。

put "red,yellow,blue green,orange".item[3]
-- "blue green"

这个命令的结果是整个字符串“blue green”,因为它们是由逗号隔开的一个字符块。

实例2:下面的语句搜索第3到第5个条目,但是由于字符串只有4个条目,所以只有第3和第4个条目显示出来。这几个条目显示在消息窗口中。

put "red, yellow, blue green, orange".item[3..5]"
-- " blue green, orange"
put item 5 of "red, yellow, blue green, orange"
-- ""

实例3:下面的语句在成员“ALL Bids”中插入一个条目“Desk”,并作为第4个条目。

member("All Bids").line[2].item[4] = "Desk"

参照:char...of,itemDelimiter,number (items),word...of

编辑历史:[这消息被cizi3000编辑过(编辑时间2001-02-15 19:50:33)]
[这消息被cizi3000编辑过(编辑时间2001-02-15 22:45:11)]
[这消息被cizi3000编辑过(编辑时间2001-02-18 10:48:55)]


cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
#42001/2/15 19:49:30
剩下的都是我的吗?

注意,粘贴的时候要选择禁止笑脸转换,否则会出现“笑脸”。



davidwee

职务:普通成员
等级:1
金币:0.0
发贴:12
#52001/2/19 10:24:37
能不能排好序?



cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
#62001/2/19 13:56:18
哦,sorry,排序很很简单,请校对的老兄把序号按照要求的顺序改一下就行了!