#12001/7/9 18:06:41
200
selection (cast property)
语法: castLib (whichCast).selection
the selection of castLib whichCast
set the selection of castLib whichCast =[ [ startMember1 , endMember1 ], \
{[ startMember2 , endMember2 ], [ startMember3 , endMember3 ]...]}
castLib(whichCast). selection =[ [ startMember1 , endMember1 ], \
{[ startMember2 , endMember2 ], [ startMember3 , endMember3 ]...]}
描述:演员属性; 选中某个角色窗口中的某个角色成员. 选择范围用一个列表表示,开始和结束的角色成员号码
指定了选择范围. 你可以通过添加角色成员的范围来包含多于一个的选择范围. (要制定多于一个选择范围,按
Control+选择(Windows) 或者Command+选择 (Macintosh).
这个属性可以被测试和设置.
范例:这个语句从角色库1中选择从 1 到10选择成员:
castLib(1).selection = [[1, 10]]
这个语句从角色库1中,选择角色成员 1 到 10, 和 30 到 40, in
castLib(1).selection = [[1, 10], [30, 40]]
201
selection (text cast member property)
语法: member(whichTextMember).selection
描述:文本成员属性; 列出文本角色中的给定的第一个到最后一个字符之间选中的字符.
范例:下列语句从文本角色成员myAnswer中选择了字符 6 到字符 10 :
member("myAnswer").selection = [6, 10]
参见: color(), selStart, selEnd
202
selEnd
语法: the selEnd
描述:全局属性; 定义了选择的最后一个字符. 配合selStart一起使用定义当前可编辑文本域选中部分, 从起
始字符开始算起.
这个属性可以被测试和设置,默认为0.
范例:这些语句从文本域"abcdefg"选择"cde"
the selStart = 3
the selEnd = 5
范例:这句话调用了处理程序noSelection 当selEnd和selStart相同:
if the selEnd = the selStart then noSelection
范例:这句话选择了20个字符长度:
the selEnd = the selStart + 20
参见:editable, hilite (command), selection() (function), selStart, text
203
selStart
语法:selStart
定义:角色成员属性; 定义了选择字符的起始位置. 和selEnd一起使用来在当前可编辑区域定义一个选择区,
从起始字符开始计算.
这个属性可以被测试和设置. 默认值是0.
范例:这些语句从文本域"abcdefg"选择"cde":
the selStart = 3
the selEnd = 5
范例:这句话调用了处理程序noSelection 当selEnd和selStart相同:
if the selEnd = the selStart then noSelection
范例:这句话选择了20个字符长度:
the selEnd = the selStart + 20
参见:selection() (function), selEnd, text
204
sendAllSprites
语法: sendAllSprites (#customEvent, args)
描述:命令;发送一个设计好的信息到所有的sprite, 而不是仅仅参与事件的那个sprite. 就像其他消息一样,
消息会发送到每个附着脚本的sprite, 除非已经使用了stopEvent命令.
为达到最好的效果, 用sendSprite发送消息到所有可以正确接收信息的Sprite. 如果信息发到所有的sprite不
会发生错误, 但是会导致效率降低. 也会在不同sprite在一个行为中拥有相同处理程序的时候导致问题, 所以
通过使用独一无二的名字给要广播的消息避免冲突.
当消息已经传递到所有的行为以后,事件按照常规消息层次传递: 演员脚本, 帧脚本, 和电影脚本.
当你是用sendAllSprites命令,确信按照下面这样做:
替换customEvent为要发送的消息.
替换args为任何要和消息一起发布的参数.
如果没有sprite拥有一个附着的行为包含已经给出的处理程序, sendAllSprites 返回 FALSE.
范例:当单击鼠标的时候,这个处理程序发送自定义信息allSpritesShouldBumpCounter和参数 2到所有的
sprites:
on mouseDown me
sendAllSprites (#allSpritesShouldBumpCounter, 2)
end
参见:sendSprite
205
sendSprite
语法:sendSprite (whichSprite, #customMessage, args)
描述:命令; 发送一个消息到附着在特定的sprite上所有的脚本.使用sendSprite消息发送到每个附着在这个
sprite上的脚本.
这个消息按照常规消息层次传递: 演员脚本, 帧脚本, 和电影脚本.
如果给出的sprite没有一个附着的行为是包含处理程序的, sendSprite返回FALSE.
范例:当用户单击的时候处理程序发送自定义消息bumpCounter和参数2到sprite 1 :
on mouseDown me
sendSprite (1, #bumpCounter, 2)
end
参见:sendAllSprites
206
serialNumber
语法:the serialNumber
描述:影片属性; 一个字符串包含Director安装时候输入的序列号.
这个属性只能在著作环境中使用. 他可以在movie in a window (MIAW) 工具中使用来用户个体信息.
范例:这个处理程序将在MIAW的电影脚本中. 他显示用户的姓名和序列号在打开窗口的文本域中:
on prepareMovie
displayString = the userName
put RETURN&the organizationName after displayString
put RETURN&the serialNumber after displayString
member("User Info").text = displayString
end
参见:organizationName, userName, window
207
set...to, set...=
语法:set the lingoProperty to expression
the lingoProperty = expression
set variable to expression
variable = expression
描述:命令; 转换表达式的值将结果赋值给lingo属性,或者表达式赋值给变量.
范例:语句把member 3的名字命名为Sunset:
set member(3).name = "Sunset"
范例:这句话设置soundEnabled属性为当前值的相反值.
当soundEnabled为TRUE (声音打开), 这个表达式的值变为关闭off. 当
soundEnabled为FALSE (声音关闭), 这个表达式得值为打开on.
set the soundEnabled = not (the soundEnabled)
范例:这句话设置变量 vowels为字符串"aeiou":
set vowels = "aeiou"
参见:property
208
setAlpha()
语法:imageObject.setAlpha(alphaLevel)
imageObject.setAlpha(alphaImageObject)
描述:函数; 设置一个图像对象的alpha通道为一个alphaLevel值或者为一个已经存在的alphaImageObject.
alphaLevel必须是一个数值从 0-255. 低数值导致图像更透明. 高值导致图像更不透明. 值255和0具有相同效
果 .
为了alphaLevel有效果, 图像对象的useAlpha()必须设置为TRUE.
图像对象必须是32位. 如果你定义了一个alpha图像对象, 他必须是8位的. 所有图像都必须有相同的分辨率.
如果这些条件不满足, setAlpha() 无效并且返回FALSE. 操作成功的时候函数返回TRUE.
范例:这个lingo语句将位图角色成员的图像前景色不透明同样关闭alpha通道. 这是一个好的方法来把alpha层
从一个图像剥离出来:
member("Foreground").image.setAlpha(255)
member("Foreground").image.useAlpha = FALSE
这个lingo语句从角色成员Sunrise获取Alpha层并把它放入角色成员Sunset的alpha层:
tempAlpha = member("Sunrise").image.extractAlpha()
member("Sunset").image.setAlpha(tempAlpha)
参考:useAlpha(), extractAlpha()
209
setaProp
语法: setaProp list, listProperty, newvalue
setaProp (childObject, listProperty, newvalue)
list.listProperty = newvalue
list[listProperty] = newvalue
childObject.listProperty = newvalue
描述:命令; 把listProperty给出的属性的值替换成为newvalue表示值. setaProp命令可以操作属性列表和子对象.
用setaProp操作一个线性列表会导致脚本错误.
对于属性列表来说, setaProp 替换列表中的一个属性.当属性在列表中不存在的时候, Lingo添加一个新的属性和值.
对于子对象来说, setaProp 替换子对象的一个属性.当属性在对象中不存在的时候 ,Lingo添加一个新的属性和值.
setaProp命令也设置父属性.
范例:这些语句建立一个属性列表并,且添加一个条目#c:10到列表:
newList = [#a:1, #b:5]
put newList
-- [#a:1, #b:5]
setaProp newList, #c, 10
put newList
范例:使用点操作符, 你可以替换列表中的某个属性的值而不需要使用setaProp:
newList = [#a:1, #b:5]
put newList
-- [#a:1, #b:5]
newList.b = 99
put newList
-- [#a:1, #b:99]
注意: 要使用点操作符来操作一个属性, 该属性必须存在于列表,子对象或者行为中,.
参见: ancestor, property, . (dot operator)
210
setAt
语法: setAt list, orderNumber, value
list[orderNumber] = value
描述:命令; 替换list所指定的列表中orderNumber所表示的第某个条目的值为value指定的值.当orderNumber大于属性列表中的条目数的时候,setAt就返回脚本错误信息. 当orderNumber大于线性列表中的条目数, Director在列表中扩展出空白条目来补足给出的orderNumber数目.
范例:该处理程序给列表[12, 34, 6, 7, 45]分配一个名字,并且替换列表中第4个条目的值为10, 然后在Message窗口显示结果:
on enterFrame
set vNumbers = [12, 34, 6, 7, 45]
setAt vnumbers, 4, 10
put vNumbers
end enterFrame
当处理程序运行, Message窗口如下显示:
[12, 34, 6, 10, 45]
你可以用方括号按照下面的形式对列表进行同样的操作.:
on enterFrame
set vNumbers = [12, 34, 6, 7, 45]
vnumbers[4] = 10
put vNumbers
end enterFrame
当处理程序运行的时候, Message窗口显示如下信息:
[12, 34, 6, 10, 45]
参见: [ ] (bracket access)
211
setFlashProperty()
语法:sprite(spriteNum).setFlashProperty("targetName", #property, newvalue)
描述:函数; 允许Lingo调用Flash action script 函数setProperty() 在指定Flash sprite上. 使用 setFlashProperty() 函数来设置flash电影中的movie clip或者level的属性. 这类似于在director中设置sprite属性.
targetName是flash中你要设置的movie clip或者level的名字.
#property 是要设置的属性的名字. 你可以设置下面movie clip属性: #posX, #posY, #scaleX, #scaleY, #visible, #rotate, #alpha, 和 #name.
要设置整个Flash sprite的属性, 传递一个空字符串作为targetName.
你可以设置整个Flash属性: #focusRect 和 #spriteSoundBufferTime.
参见Flash文档来获得这些属性的描述.
范例:这句话sprite 3中的flash成员的movie Clip "star"的#rotate属性为180.
sprite(3).setFlashProperty("Star", #rotate, 180)
getFlashProperty()
212
setPixel()
语法: imageObject.setPixel(x, y, colorObject)
imageObject.setPixel(point(x, y), colorObject)
imageObject.setPixel(x, y, integervalue)
imageObject.setPixel(point(x, y), integervalue)
描述:函数; 在给出的图像对象中绘制一个指定颜色的点,或者是对一个颜色对象, 或者是以一个整数值来代表原始数据。如果你是要使用getPixel()来设定很多象素点的颜色,用原始数据的方法要快很多。
为了最好的表现效果, 8位色或低于8位色的图形最好使用索引色对象, 对于16位色或更高的图形使用RGB颜色对象。
SetPixe() 这个函数在指定的象素落在指定的图形以外的情形下会返回false这个值。
在Director的安装目录下, 有一个learning\Lingo Example文件夹, 其中的Imaging 电影就是如何使用SetPixel()的范例。
范例:这个lingp语句在角色成员5中从左到右绘制一个水平50像素的黑线.
repeat with x = 1 to 50
member(5).image.setPixel(x, 0, rgb(0, 0, 0))
end repeat
参见: getPixel(), draw(), fill(), color()
213
setPlaylist()
Syntax sound(channelNum).setPlaylist([#member: member(whichmember), {#startTime:
milliseconds, #endTime: milliseconds, #loopCount: numberOfLoops, #loopStartTime:
milliseconds, #loopEndTime: milliseconds, #preloadTime: milliseconds}]. . . )
setPlaylist(sound(channelNum), [#member: member(whichmember), {#startTime:
milliseconds, #endTime: milliseconds, #loopCount: numberOfLoops, #loopStartTime:
milliseconds, #loopEndTime: milliseconds, #preloadTime: milliseconds}]. . . )
描述: 这是一个函数, 它用来设定或重新设定指定声音通道的播放清单,你可以用这个命令一次设定多个声音文件的播放次序。
下面的这些参数, 你可以指定给每一个在播放清单上的声音文件:
-------------------------------------------------------
Property Description
-------------------------------------------------------
#member 这是必需的参数, 指定播放清单上的声音cast members
#startTime 该声音开始播放的时刻, 以毫秒记. 缺省设定为声音的最开头。见startTime.
#endTime 该声音停止播放的时刻, 以毫秒记. 缺省设定为声音的最结尾。见 endTime.
#loopCount 根据#loopStartTime 和#loopEndTime所确定的循环的次数, 缺省设定是1。
#loopStartTime 循环开始的时刻, 以毫秒记。见loopStartTime.
#loopEndTime 循环结束的时刻, 以毫秒记。见loopEndTime.
#preloadTime 在播放前需要预载的部分, 以毫秒记。见preloadTime.
-------------------------------------------------------
在Director的安装目录下, 有一个learning\Lingo Example文件夹, 其中的Sound Control电影就是如何使用SetPlayList()的范例。
例子: 这个句柄将会把cast member“intorMusic”排入播放清单, 并将从第三秒处开始播放, 其中从第八秒到第8.9秒段会循环播放五次, 最后在第十秒处停止播放。
on playMusic
sound(2).queue([#member: member("introMusic"), #startTime: 3000,\
#endTime: 10000, #loopCount: 5, #loopStartTime: 8000, #loopEndTime: 8900])
sound(2).play()
end
同时参见: endTime, getPlaylist(), startTime, loopCount, loopEndTime, loopStartTime, member (sound property), play() (sound), preLoadTime, queue()
214
setPref
语法:setPref prefName, prefvalue
描述:这是一个命令, 用来书写一个纯文本文件到计算机的硬盘,该文件内容由prevalue来定义, 而文件名由PreName来指定。
PreName必须是合法的文件名, 为了使文件名在所有的操作平台上都合法,请使用不超过8个字符的文件名, 文件名只含数字和字母符号。
如果当前的电影是在浏览器的环境下播放, 使用这个命令后, 将会在Plug0In support文件夹下建立一个名字为Pref的子文件夹, 该命令只能书写文本文件到该文件夹。
如果当前的电影是在projector 或者Director的环境下播放, 使用这个命令后, 将会在Projector 或Director.exe所在的文件架下建立一个名字为Pref的子文件夹。
不要使用这个命令来书写只读文件, 根据操作系统以及其版本的不同, 你也许会遇到出错信息,或其他的问题。
这个命令不会对字符串进行任何复杂的处理, 包括字符串的格式, 你只能在结合使用getPref()时对字符串进行操作, 该操作在内存里进行,完成后用setPref来重新覆盖原来的文件。
对于浏览器的情形,由setPref书写的数据不是保密的, 任何shockwave电影都可以读它并且上传该文件给服务器, 所以不要用setPref来保存任何需要保密的信息。
在Director的安装目录下, 有一个learning\Lingo Example文件夹, 其中的read and write text电影就是如何使用setPref的范例。
例子:下面的句柄将会保存文字域"Text Entry"的内容到指定的文件DayWare里。
on mouseUp me
setPref "CurPrefs", member("Text Entry").text
end
同时参见 getPref()
215
setProp
语法: setProp list, property, newvalue
list.listProperty = newvalue
list[listProperty] = newvalue
描述:命令; 把属性property的值替换成为newvalue定义的值,newvalue位于list所定义的列表中用.如果列表中不包含指定的属性, setProp 返回一个script error脚本错误..
setProp 命令仅仅运行在属性列标上. 在setProp 中使用一个线性列表将导致脚本错误.
除了setProp在属性不再列表时返回一个错误以外,这个命令和setaProp命令相似 .
范例:这句话把属性列表x中的#age属性从替换成为11:
setProp x, #age, 11
范例:使用点操作符,你可以表示一个属性列表中的属性值, 就像下面这样:
x.age = 11
参见: setaProp
216
setScriptList()
语法: sprite(whichSprite).setScriptList(scriptList)
描述:这个命令设定命令中给出的sprite的脚本列表. 脚本列表scriptList显示了这个sprite上面所附的所有的脚本和每个脚本的属性设置.
通过设置这一列表, 你可以改变sprite上附着的行为或者改变行为的属性.
列表可以是这样的形式:
[ [ (whichBehaviorMember), " [ #property1: value, #property2: value, . . . ] ",
[(whichBehaviorMember), " [ #property1: value, #property2: value, . . . ] " ] ]
在进行score recording的过程中不可使用这个命令, 对于score recording 加入的sprite, 请在score recording 结束后用setScriptList()指令.
参见:scriptList, value(), string()
编辑历史:[这消息被机器猫编辑过(编辑时间2001-07-09 19:47:07)]
[这消息被机器猫编辑过(编辑时间2001-07-10 08:40:50)]
[这消息被flyingbird编辑过(编辑时间2001-07-11 19:15:31)]
[这消息被flyingbird编辑过(编辑时间2001-07-11 20:08:11)]
[这消息被flyingbird编辑过(编辑时间2001-07-12 05:38:22)]