--哈哈,我已经完工,请哪位仁兄校正一下,并排好版!
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