Director 疑难解答
01. 如何制作一个放映机(projector)可以在不同分辨率下播放?
[A] 加入下列语句:
on prepareMovie
(the stage).rect = (the desktopRectList)[1]
(the stage).drawRect = (the desktopRectList)[1]
end
注意,这个语句是通过放大或缩小舞台来达到效果的,所以会有变形。
02. 如何导入photoshop的图层?
[A] Director7.0以后的版本你可以通过Medialab公司的Photocaster Xtra来实现。
03. 在程序中如何导入图片而不失去图片周围的白色部份?
[A] 通过指定图片的trim whitespace属性可以实现:
m = new(#bitmap)
m.trimWhiteSpace = 0
m.filename = the moviePath & ‘‘file.bmp‘‘
m.media = m.media
04. 如何得到全局变量列表?
[A] 在messages的窗口中,你可以输入showGlobals来显示所有的全局变量。以下的代码也可以显示所有的全局变量:
repeat with x = 1 to (the globals).count
put (the globals).getPropAt(x) & ‘‘ = ‘‘ & (the globals)[x]
end repeat
05. 如何播放mpeg文件?
[A] 有一系列的方法,不能说哪一种更好,并且在pc机和mac机上是不一样的,下面是四种常见的方法:
1. 用一个xtra。这种方法用起来简单,且也有好的产品支持,但大多不能跨平台使用。当然,这是需要购买的。
2. 使用ActiveX控件。这只能在pc机上用,相对xtra而言会有更多的限制,但它是免费的,且与标准playback能够很好的集成。
3. 使用quicktime。但这只能在mac的机子上用(不过5.0好像也可以支持pc)。
4. 用mac来调用。这是另一种只支持pc机的方式,但与d集成不好,不建议采用。
选取一种最适合你的方法,但要记住多在不同的平台上做测试,mpeg文件在每种平台上的效果都是不同的。
06. 如何才能更改project的图标?
1. 准备素材:
首先,准备需要使用的演员(包括文本演员和按钮演员各4个)并将其置于舞台之上,完成后的结果如图所示。其中4个文本演员生成的角色分别位于通道1中的不同帧。

2. 编写剧本:
打开剧本窗口,建立一个名为“Loop”的剧本演员,并在属性监察窗中将其属性调整为“Behavior”,然后输入下面的代码:
on exitFrame me
go to the frame
end

上面这段代码使得播放头始终在当前帧上循环,直至发出跳出循环的命令。其实这个“Loop”便是一个简单的行为,只不过它并没有需要设置的参数。
使用相同的方法建立一个名为“Guide”的剧本演员并调整其属性,然后输入下面的代码:
property pTargetFrame
on getPropertyDescriptionList me
list = [:]
addProp list , # pTargetFrame, [ # comment: "Go To Frame" , # format: #integer , # range: [ # min: 1 , # max: 25 ], # default: 1 ]
return list
end
on mouseUp me
go to frame pTargetFrame
end
3. 添加Script:
将行为“Loop”分别拖拽到分镜表窗口帧通道的1、5、16、24帧,以使影片能够在这些帧上循环播放。

以同样的方法将行为“Guide”拖拽到角色2(由演员“Button01”生成)上,此时会出现下图所示的参数对话框。通过这个对话框,可以直接指定“go to frame pTargetFrame”命令中pTargetFrame的取值。利用滑动条,在当前对话框中指定其取值为“1”。

分别对角色3、4、5进行相同的操作,只不过需要在参数对话框中指定不同的pTargetFrame取值:角色3的pTargetFrame = 5,角色4的pTargetFrame = 16,角色5的pTargetFrame = 24。
从以上的操作中可以看到,此时的pTargetFrame已经成为了一个“变量”,我们完全可以根据需要指定其取值,从而避免了为不同的导航目的地编制不同的导航命令。这便是行为的强大之处。