#12001/8/9 15:37:55
56
downloadNetThing
语法 downloadNetThing URL, localFile
描述 命令;从网络上下载一个文件到本地工作站,当下载文件时,当前影片继续播放。使用netDone来 检查是否下载完毕。
URL—可以被下载的目标地址:例如一个FTP或HTTP服务器,一个网页地址,一个外部演员或角色成员,一个Director影片,或者是一幅图
localFile—影片在本地磁盘文件的路径和文件名,Director影片在创作和放映时支持downLoadNetThing 命令,但是Shockwave放映不支持。这可以保证在终端用户的系统中保护Shockwave不受恶意破坏或防止数据被不恰当地接收。
虽然一些网络操作在某个时间可能会被激活,运行超过四个并行的操作,通常太慢不能接受,这 既不是Director 电影的高速缓存的大小也不是设置文档先项影响downloadNetThing 命令的行为。
注意: Director for Java 并不支持 downloadNetThing 命令。
例子 此例从一个URL 中下载一个外部的角色成员到Director 应用程序文件夹中,并且把它命名为Thousands.cst
downLoadNetThing("http://www.cbDeMille.com/Thousands.cst", the \
applicationPath&"Thousands.Cst")
castLib("Cast of Thousands").fileName = the applicationPath&"Thousands.Cst"
参见 importFileInto, netDone(), preloadNetThing()
57
draw()
语法 imageObject.draw(x1, y1, x2, y2, colorObjectOrParameterList)
imageObject.draw(point(x, y), point(x, y), colorObjectOrParameterList)
imageObject.draw(rect, colorObjectOrParameterList)
描述 此函数画一条线以及未填充的椭圆、矩形和圆角矩形,如果没有错误则返回值为1,你可以使用可选的参数列表ParameterList 函数指定之后的形状属性
---------------------------------------------
Property 描述
--------------------------------------------
#shapeType 属性值是个符号,指定所绘的形状。只可用4个值: #oval, #rect, #roundRect, or #line. 默认的是 #line.
#lineSize 所画线条的线宽,是一个整数。默认为1。
#color 一个颜色对象,它是形状的线条或边框的颜色。默认颜色为黑色。
-------------------------------------------
如果你没有指定一个参数列表,此函数画一条给定第一点和第二点之间的宽为1的线或者是一个指定了左上角和右下角的矩形。
为了获得最佳的性能,8位或更低的图象应该包括一个颜色索引,16位或32位的图象使用RGB色值。
如果你想填充一个实心区域,使用fill()函数。
例子 此例画一个1个象素宽,黑红色的图象到成员Happy,起点为 (0, 0),终点为 (128, 86) member("Happy").image.draw(0, 0, 128, 86, rgb(150,0,0))
例子 此例画一个黑红色的3个象素宽不填充椭圆到成员表Happy中。椭圆画在一个矩形 (0, 0, 128, 86)中。
member("Happy").image.draw(0, 0, 128, 86, [#shapeType:#oval, #lineSize:3, \
#color: rgb(150, 0, 0)])
参见 color(), copyPixels(), fill(), setPixel()
58
drawRect
语法:window windowName.drawRect
the drawRect of window windowName
描述 窗口属性;确定在窗口中当前影片舞台的矩形属性(不知怎么译),命令(函数)依次显示left, top, right, bottom
此属性对于缩放或平移(panning)舞台是很有用的,但它不能重新调节text和field的演员,缩放bitmaps图会影响效果。这个属性可以被测试也可被设置.
例子:这个例子显示当前影片中名为controlpanel窗口的矩形属性
put the drawRect of window "Control Panel"
-- rect(10, 20, 200, 300).
例子:这个例子设置电影的矩形属性值等于矩形变量movierectangle。电影在这个矩形中的部份就是在窗口中出现的部份。
set the drawRect of window "Control Panel" to movieRectangle
例如下列语句将使舞台充满整个显示器(全屏显示)
(the stage).drawRect = the desktopRectList[1]
(the stage).rect = the desktopRectList[1]
参见 deskTopRectList, rect(),sourceRect
59
dropShadow
语法 member(whichCastMember).dropShadow
the dropShadow of member whichCastMember
描述角色成员属性;决定一个域角色成员中文本的阴影的大小。
例子 此例设置一个域文本的阴影为5个象素
member("Comment").dropShadow = 5
60
duplicateFrame
语法 duplicateFrame
描述 复制当前帧及它的内容,插入复制帧在当前帧之后,此命令只能用于Score 中。
此命令执行效果类似于insertFrame命令。
例子 当用于下列处理程序中时,此命令建立一个连续帧,从外部的角色成员Toys 到角色成员Ball分配到 sprite
通道20。 帧数决定于变量
numberOfFrames.
on animBall numberOfFrames
beginRecording
sprite(20).member = member("Ball", "Toys")
repeat with i = 0 to numberOfFrames
duplicateFrame
end repeat
endRecording
end
61
duplicate() (list function)
语法 (oldList).duplicate()
duplicate(oldList)
描述: 返回一份列表及嵌套列表的副本及内容,此函数对于保存当前列表内容非常有用。当你指定一个变量到列表,变量包含一个列表的参考,而不是列表自己。这意味着副本对于原列表会有些影响。
参见一个用 duplicate() (list function)的例子在一个完整的电影里面,参见Director应用程序安装的目录中学习LINGO的文件夹中的一个矢量图形的电影。
例子 此例做一个列表CustomersToday的副本并且把它指定给一个变量CustomerRecord:
CustomerRecord = CustomersToday.duplicate()
62
duplicate() (image function)
语法 imageObject.duplicate()
描述 此函数建立和返回一个给定imageObject的副本。新的图象是一个完整的、不依赖于原图且与任何角色成员没有链接关系。如果你计划对一幅图做许多的修改,最好的办法是做一份不依赖于角色成员的副本。
例子 此例是从一个图象角色成员Lunar Surface建立一个新的图形对象,并且把这个图形对象放入一个变量workingImage 中。
workingImage = member("Lunar Surface").image.duplicate()
参见 duplicate member
63
duplicate member
语法 member(originalMember).duplicate()
member(originalMember).duplicate({new})
duplicate member original {, new}
描述: 构造一个指定的原始角色成员的副本,可以选择新的参数来指定一个详细的成员窗口来为复制的成员定位。如果新的参数没有包括,复制的角色成员会放在打开的第一个成员窗口的位置。这条命令在编辑作品里用要比运行期用好得多,因为它在内存中建立另一个角色成员,这会导致内存问题。如果你想永久地并保存为文件来改变角色,在在编辑时用此命令。
例子 此例做一个角色成员DESK的副本并把它放在成员表窗口的第一个空位置上。
member("Desk").duplicate()
例子 此例做一个角色成员DESK的副本并把它放在成员表窗口中的第125位上。
member("Desk").duplicate(125)
64
duration
语法 member(whichCastMember).duration
the duration of member whichCastMember
描述 角色成员属性; 决定指定的 Shockwave Audio(SWA), transition, and QuickTime 等的持续时间。当 whichCastMember 是一段持续的声音文件时,这个属性显示这个声音的持续时间。这个 duration 属性返回值为0当持续开始时。设置 preLoadTime 为1时允许低速率的返回真实的持续时间。当 whichCastMember 是一个数字视频角色成员时,此属性显示数字视频的持续时间。此值在标记里当 whichCastMember 是一个转场角色成员时,此属性显示转场的持续时间。转场的值是以毫秒为单位的。在重放期间,此设置同在设置帧转场对话框中的设置是相同的。这个属性可以测试支持的所有的角色成员,但是只能设置转场。
看duration 的例子在一个完整的电影中,可以看QT 和Flash 电影,在Director 应用程序所在目录下的Learning\Lingo 例子文件夹中。
例子 如果SWA 角色成员 Louie Prima 已经预装载了,此例子显示声音的持续时间在一个域角色成员Duration Displayer中:
on exitFrame
if member("Louie Prima").state = 2 then
member("Duration Displayer").text = member("Louie Prima").duration
end if
end
例子 你可以在一个数字视频sprite 上用一段行为来循环播放头在当前的帧上,直到电影播放完毕,允许它持续到结束:
property spriteNum
on exitFrame me
myMember = sprite(spriteNum).member
myDuration = member(myMember).duration
myMovietime = sprite(spriteNum).movieTime
if myDuration > myMovietime then
go to the frame
else
go to the frame + 1
end if
end
65
editable
语法 member(whichCastMember).editable
the editable of member whichCastMember
sprite(whichSprite).editable
the editable of sprite whichSprite
描述 角色成员和 sprite 属性; 指定一个域角色成员在舞台上是否可以被编辑 (TRUE) or not (FALSE).
当角色成员属性已经设置,此设置应用于所有的包含域的sprites。当 sprite 属性已经设置,只有指定的sprite 会受到影响。你也可以在域角色成员属性对话框中用Editable选项来设置一个域角色成员可以被编辑。你也可以在Score中用Editable选项来设置一个域 sprite 可以被编辑。用Lingo来设置一个值给当前的 sprite, 这个 sprite 必须是一个傀儡。此属性可以用来测试及设置。
例子 此例使一个域角色成员可以被 编辑:
member("Answer").editable = TRUE
例子 此例先使sprite 通道傀儡然后做域可以被编辑:
on myNotes
puppetSprite 5, TRUE
sprite(5).editable = TRUE
end
例子 此例检查一个域sprite 是否可以被编辑,如果是则显示一个信息:
if sprite(13).editable = TRUE then
member("Notice").text = "Please enter your answer below."
end if
66
editShortCutsEnabled
语法 the editShortCutsEnabled
描述 电影属性:在当前电影中指定剪切、拷贝和粘贴快捷键是否可用。当设置为真TRUE 时,这些文本操作功能可以用,当设置为假 FALSE 时,这些功能不可用。此属性可以测试和设置。在Director 8中制作电影时默认值为真 TRUE , 在Director 8以前的版本中默认值为假FALSE。
例子 此例使剪切、拷贝和粘贴的功能不可用:
the editShortCutsEnabled = 0
67
elapsedTime
语法 sound(channelNum).elapsedTime
the elapsedTime of sound channelNum
描述 此只读属性给定一个以毫秒为单位的时间,指的是在给定的声音通道里正在播放的的声音成员。当声音开始播放时它的值为0,并且随着声音的播放增加不管是否循环,设置当前时间currentTime或是其它处理操作。用 currentTime 来测试声音里的当前的绝对时间。这个属性的数值是一个不固定的值,允许声音播放某部分。
例子 此 idle 处理程序在屏幕中在idles期间,在一个域中显示通道4的声音共用多长时间:
on idle
member("time").text = string(sound(4).elapsedTime)
end idle
参见 currentTime, loopCount, loopsRemaining, rewind()