Director MX 2004使用问答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Director MX 2004使用问答
Q: 为什么用MX2004打包后会显示标题栏?
A:把display template中的titlebat options里的选项都取消就可以了。

Q:如何在DR中打开word文件
A:1,在d内打开须使用activex
2,在d外打开调用word程序打开即可
Q:怎样实现让用户选择不同的背景音乐?
A:on mouseUp me,7v@
fileobj=new(xtra "fileio")~M+Hhf
fileobj.setFilterMask("all file, *.*,mp3,*.mp3,wave, *.wav")i
filename=displayOpen(fileobj)^|kHUb
if filename="" or filename=void then exitU9
closefile(fileobj) jhI
sound playFile 2, string(filename)
end
Q:请问怎么给mpg视频加遮照?
A:1,利用open widndow 做视频遮照
2,用MPEG advance xtra 插件,在属性窗口中把playback opitions 下的DTS取消了,就可以了,然后就在视频之上的通道里放你遮的图片即可
Q:怎么检测本机是否连接到intel网上?
A:WinSocket Xtra Ad可以实现,说明:
WinSocket Xtra 是一套Sprite Xtra,一共有三个,分别为 TCPServer.X32,TCPClient.X32和UDPSocket.X32。

TCPServer.X32是服务器端xtra,TCPClient.X32是客户端xtra,采用Tcp/ip协议。

互相配套用于网络信息传递,可以构建类似聊天室,多人连线游戏。

UDPSocket.X32采用UDP 协议。

独立用于网络信息传递,也可以构建类似聊天室,多人连线游戏。

Q:flash动画导到dr后声音和动画不同步怎么解决?
A:使用线索点,最好调好以后把它锁定。

Q:如何检测用户是否安装quicktime,若无就提示安装?
A:on exitframe me
if quicktimeversion()<5.0 then
open the moviepath@"quicktime\fullinstallercn.exe“
halt()
else
go "start"
end if
end
Q:为什么发布成exe文件后视频不能正常播放?
A:1.打包后Xtras文件夹是否在打包文件夹下,是否包含播放视频所需插件
2.视频是否为mpg,如使用DirectMediaXtras,mpg文件是否与exe在同级目录下
Q:如何实现点击打开本地文件夹?
A:gotoNetPage("c:\")
不过路径中不要有中文!
Q:如何将dr里的flash导出?
A:ExportSWF.x32插件。

说明:
object = xtra("ExportSWF").new()
第1个参数是Flash演员,第2个参数是要保存的路径。

Q:请问如何打开dxr文件?
A:你可以借助dirOpener300-850-1-PC.exe这个软件,但无法看到lingo语法.
Q:怎样分别控制两个声音通道的声音?
A:sound(n).volume=m
n=1,2,3,4,5,6,7,8
m=0—255
Q:请问dr能否输出avi格式的文件?
A:可以,文件-〉输出-〉弹出对话框在底部的格式处选择 .avi
Q:请问在dr中如何实现按“F1”调用帮助,且在不同的地方调用不同的字段呢?
A:定义F1键就可以了;在调用函数的时候传递一个参数,参数的取得是当前光标所在位置上的单词
Q:miaw中如何定位弹出的窗口啊?
A:利用tell命令+rect命令
Q:求键盘代码表?
A:语法:1、if the keyPressed =" " then doSomething
2、if the keycode=49 then doSomething
the keycode
esc -- 53
1-- 18
2-- 19
3-- 20
4-- 21
5-- 23
6-- 22
7-- 26
8-- 28
9-- 25
0-- 29
- -- 27
= -- 24
backspace -- 51
` -- 50
Tab -- 48
a-- 0
b-- 11
c-- 8
d-- 2
e-- 14
f-- 3
g-- 5
h-- 4
i-- 34
j-- 38
k-- 40
l-- 37
q-- 12
r-- 15
s-- 1
t-- 17
u-- 32
v-- 9
w-- 13
x-- 7
y-- 16
z-- 6
space-- 49
delete-- 117 Home-- 115
End-- 119 pageUp-- 116 pageDown-- 121 Pause/Break-- 113 \ -- 42
/ -- 44
. -- 47
, -- 43
上-- 126
下-- 125
左-- 123
右-- 124
小键盘:
/-- 77
*-- 66
- -- 70
+ -- 78
. -- 65
0 -- 82
1 -- 49
2 -- 84
3 -- 85
4 -- 86
5 -- 87
6 -- 88
7 -- 89
8 -- 91
9 -- 92
功能键
F1:122
F6:97
F7:98
F8:100
F9:101
F10:109
F11:103
F12:111
Q:请问按任意键退出要怎么设置?
A:在电影脚本中添加如下代码:
on keyDown
quit()
end
Q:请问DIRECTOR中最小化按纽程怎么写?
A:on mousedown me
appMinimize
end
Q:请问DIRECTOR中最大化按纽程怎么写?
A:on zoomWindow。

end
Q:如何判断文件是否存在?
A:用fielio实现
file_name=(the moviepath & “你的文件夹”/"你的文件" )--存放文件的路径 myFile = new(xtra "fileio") --创建FileIO对象
openFile(myFile,file_name,1) --打开这个文件.参数"1"为打开方式:
--0=r/w (read/write) ;--1=r (read);
--2=w (write)
if readFile(myFile)<>VOID then
......(语句)else
.......(语句)
end if
Q: 如何在dr中引用CHM格式的帮助文档?
A:用budapi插件里的open就可以实现
Q:请问在dr里导入flash后怎么控制播放和暂停?
A:sprite(通道号).play() ---播放
sprite(通道号).stop() ---停止
Q: 怎样在dr里面建数据库啊?
A: 借助插件EasyDB
Q: photocaster导入的psd图层怎么出现了很多斜杠?
A:这是因为没有注册的原因
Q:请问怎么改变dr的背景色?
A:使用_movie.stage.bgColor属性就可以了。

Q:dr程序为何在后台就不运行,这是否就是d是单任务的原因?
Q:如何让影片循环播放?
A:在最后一帧上加入lingo在里面就行了
on exitFrame me
go to frame 1
end
Q: 请问如何从一个电影跳转到另一个电影的指定帧?
A:go frame 4 of movie"gh"
Q:如何去除exe文件界面四周的白边?
A:使用创建不规则窗口的办法。

用MIAW.可以用它去掉舞台边上一个像素的边框.建立一个1x1全屏播放的projector,通过MIAW命令用它打开你的主影片,设置主影片的windowType为一个1 bit 的位图,该位图你的主影片的形状.例如:
myMiaw = window("myWindow") --创建的MIAW
myMiaw.windowType = member("1 bit bitmap") --1 bit的主影片的形状的位图
Q:请问怎么才能插入光盘后自动运行光盘?
A:使用记事本,文件名最好命名为:Autorun.inf
内容如:
[autorun]
OPEN=Setup.exe
ICON=Setup.ico,0
Q:如何使GIF动画只播放一遍?
A:动态GIF和F一样,再属性面板有一个循环选项。

Q:请问如何能用director做一个隐藏的导航栏?鼠标放到屏幕边缘就有一个导航栏的那种?
A:方法很多!!
最简单,你在要加导航的地方放一个同大小透明的FIELD,
mouseWithIn,mouseEnter,mouseLeave,……
rollover也可以~~~
还可以用坐标区域进行判断~
Q:怎样用lingo编写帧速度?
A:puppetTempo 帧速
Q:如何用dir,打开一个外部的exe文件?
A:open"名称.exe"
Q:怎么给dir文件瘦身啊?
A:把文件另存一下,或者在FILE菜单里面选SAVE AND COMPACT
Q: 请教:在Dr中如何调整swf文件的播放速度?
A: 选中演员,选属性面板里面的FLASH选项的RATE。

1、选中角色时,按ctrl键点鼠标左键即可调出墨水菜单,很方便!
2、director的import对话框对一次导入的文件数目有一定限制,如果你的文件够多,可以选种n 个直接从资源管理器中往cast中拖。

我上次一口气拖了800个文件进来!
3、我来一个:Ctrl + F打开文字的查找/替换窗口,不仅可以替换普通的文本,在script窗口中也可使用,例如可以方便更改整个script中的某一变量名称或数值。

4、增加通道中贞的长度用"ctrl"+]键。

减少通道中贞的长度用"ctrl"+[键。

5、在音频编辑时COPY音轨直接贴入CAST中,为WAV嵌入
6、Re:小技巧
在score中:
按ctrl移动精灵的某个关键帧,可以不影响到精灵的其他关键帧。

选中精灵,按ctrl+b可以裁切精灵的帧。

按ctrl+shift+]可以一次插入n帧。

当程序进入死循环没有响应时,可按ctrl+alt+.停下来
7、点击舞台上的精灵,会出现选择效果。

这时按小键盘中的“+”会去除选择效果,可以让较准精细些。

8、说说text,field的可编辑属性
1. text or field 想用一个按钮控制其可编辑属性,必须先是非编辑状态保存。

2.
当用lingo 改变这个编辑属性( sprite(x).member.editable =1 ) 的时候
光标不会显示,也就是说出现了假编辑状态。

再执行:sprite(x).member.scrolltop=0 就可以了。

9、建立filmloop 的快捷方式:
选择目标精灵后,选择空演员,按Ctrl+V即可建立filmloop!
10、在Script窗口里,Ctrl+Enter可以自动对齐编写凌乱的代码并且做一个简单的检测
11、当你在score 中" 找不着北的时候" 点图示红框中的按钮。

作用是把当前磁头所在frame 在score 窗口居中。

12、cast中复制一个filmloop,d•在score中空白处CTRL+V,就能把原来的filmloop展开。

试试吧!很多人不知的。

13、双击位图处理器中的注册点,可以马上让注册点居中
14、跟一贴,选中精灵,按Ctrl+Shift+i,调出属性框。

按Ctrl+Shift+;,可调出Behavior框。

Ctrl+0,直接写脚本。

选中多个精灵,按Ctrl+k出对齐框。

Ctrl+s,保存。

在通道在选中一帖,按Ctrl+b,可删掉多帖。

选中一精灵,按Ctrl+L,锁定。

通道中选中锁定精灵,Ctrl+Shift+L,解锁。

Ctrl+R,开始装图片吧。

Ctrl+M,message窗口。

Ctrl+N,创建一个新文件。

15、terry 问的问题在调出属性面板的时候就会出现增加通道的选项
16、rtf 或者word 文档中英文半角引号导入director中,有些字体引号显示乱码。

把rft 或者word 文档转存txt 文档,然后导入就正常了。

17、ctrl+0 控制script窗口是否显示
ctrl+1 使stage显示在最前面
ctrl+2 控制control panel 是否显示
ctrl+3 控制cast窗口是否显示
ctrl+4 控制score窗口是否显示
ctrl+5 控制paint窗口是否显示
ctrl+6 控制text窗口是否显示
ctrl+7 当被选中时,显示tool palette
ctrl+8 控制text field窗口是否显示
ctrl+9 控制是否显示video窗口,如果安装了quicktime,则打开qt窗口
ctrl+- 当score窗口是活动的时,通过使每帧更窄而缩小分镜表视图.当舞台
是活动的时,将舞台视图缩减一个级别.
ctrl++ 当score窗口是活动的时,通过使每帧更宽而扩大分镜表视图.当舞台
ctrl+左箭头把播放头移动到前一个标记
ctrl+右箭头把播放头移动到下一个标记
ctrl+上箭头把选中的元素向前移动一层
ctrl+下箭头把选中的元素向后移动一层
ctrl+'; 显示选定的角色成员所附加的脚本
ctrl+; 查找指定的角色成员
ctrl+Y 重复最后一次动作
18、想实现这样一个效果:
当没有事件发生时是一张100×100的图片
当Mouse within时
变成一个100*100的电影片段
当Mouse leave时
再变成一张图片
直接把电影导入Director是不可以的,当Mouse within时电影会有问题
必须先把电影制作成一个独立的Dir
然后再导入这个Dir完成!
19、在舞台STAGE上按住空格键.可以控制整个STAGE位置.
20、文本变图片
在d中,对文本的支持大家都领教过了,所以对于一些简单的文本,我们希望可以在d中做,然后转化为图片,但个covert to bitmap实在不敢恭维,要有更好的效果,可以利用image这个属性,方法是建一个图片演员(随便画就行),然后在消息窗口输入member(bitmapmember).image=member(textmember).image,这样,就出来一个可以很好透明的文本图片了。

21、位图有光晕,可导入flash描边,形成.swf文件引入D
F中做的按扭在D中引用,非常靓,一句话,很多演员可在F中制作,在D中引用。

22、图像在Adobe Photoshop 中编辑,制作前选择背景透明,最后保存时存成psd 的格式,导入Director 中不会有毛边,而且在Adobe Photoshop 中的效果都有,包括图像边缘的半透明!!!很好的试试吧!!!!
23、写lingo时,用alt+enter快速换行连接
24、在score中,点击某个精灵,直接按任意键就可写如行为,且此行为自动附在该精灵上。

Flash component事件列表
A:根据Flash MX 2004和Director MX 2004的帮助信息整理。

侦听器是Flash中的概念,可以把它理解成Director中的事件处理程序(虽然不一定正确)。

Director MX 2004中的绝大多数组件的事件和Flash MX 2004中是一样的,但是也有些例外,例如Tree组件在Flash中就支持nodeOpen事件,但是在Director的帮助中却没有提及。

看一下Flash MX 2004关于组件的帮助,对理解Director中的组件会有很大的帮助,Flash MX 2004中的帮助绝对比Director中的要详细和具体。

下面是详细内容:
Botton组件
Click
在按钮上单击(释放)鼠标,或者当按钮具有焦点并按下空格键时,对所有已注册的侦听器进行广播。

CheckBox组件
Click
在复选框上单击(松开)鼠标时,或者,如果复选框有焦点并按下了空格键时,向所有已注册的侦听器广播。

当选择日期时,向所有已注册的侦听器广播。

scrol
在按下月份按钮时广播到所有注册的侦听器。

Label组件
label组件没有事件
List组件
List组件没有事件
NumericStepper组件
change
当步进器的值更改时向所有已注册的侦听器广播。

RadioButton组件
click
在单选按钮上单击鼠标(按下然后松开)或使用箭头键选中单选按钮时,向所有已注册的侦听器广播。

当单选按钮组具有焦点,但组内没有单选按钮被选中时,如果按空格键或箭头键,该事件也会广播。

ScrollPane组件
completer
当加载完内容时向所有已注册的侦听器广播。

progress
在加载内容时向所有已注册的侦听器广播。

progress 事件并不会始终广播;complete 事件可能在未调度任何progress 事件的情况下广播。

如果加载的内容是本地文件,尤其会出现这种情况。

当通过设置contentPath 属性的值开始加载内容时会触发此事件。

scroll
当用户按下滚动条按钮、滑块或轨道时,向所有已注册的侦听器广播。

与其他事件不同的是,当用户按下滚动条时,scroll 事件开始持续广播,直到用户松开滚动条。

当步进器的值更改时向所有已注册的侦听器广播。

TextArea组件
change
通知侦听器文本已更改。

在文本更改后广播该事件。

不能使用该事件防止某些字符添加到组件的文本字段,而应使用TextArea.restrict。

TextInput组件
change
通知侦听器文本已更改。

在文本更改后广播该事件。

不能使用该事件防止某些字符添加到组件的文本字段,而应使用TextInput.restrict。

该事件只能通过用户输入触发,不能通过编程方式的更改来触发。

enterk
通知侦听器Enter 键已被按下。

Tree组件
nodeClose
在用户关闭Tree 组件的节点时,向所有注册的侦听器广播。

Q: DIRECTOR WMV视频控制?
A:--currentTime 当前播放到第几贞
--duration当前WMV总贞数
--seek(??)WMV跳到第几贞
--play()播放
if sprite(?).currentTime =sprite(?).duration then --判断是否播放结束
go the frame+1end if sprite(?).seek(?????)跳贞*.
wmv ~~~~~director
Q: director 文本中能否加入表格?
A: 用member("文本演员").html属性可以做到。

Q: 请教,如何与数据库链接使用?
A: 常用的有三个,
ODBC,这个奥古有专门的讨论,但只能作查询,不能改库文件,收费的,
EASYDB,免费的,速度慢,功能还可以
V12,不属性,听说挺好,收费的
Q: 插入 .mpg 文件为什么总是绝对路径,怎么改相对的路径?
A:the moviepath&"work\strat.mpg"
Q:请问go to movie "main"和play movie "main"的区别是什么?
A:gotomovie 是跳转到某个电影并播放
playmovie是播放某个电影
Q:save、save as和save and compact的区别?
A:回答这个问题首先需要了解director文件结构的有关知识。

一个Director movie文件包含的主要信息是cast和score,cast包含电影所需的原始素材,score包含电影播放的流程信息。

通过比较,可见cast对dir文件(包括dxr、dcr、cst和cxt等等)的大小影响最大,对影片播放的整体表现影响也非常大。

通常多媒体创作人员都需要考虑电影生成或者打包时的优化问题,例如,导入优化过的图形文件和视频文件等等。

但是,经常出现的问题是导入了很多资源,实际上并没有完全使用,以及在导入时是根据创作者的需要来导入,而并非出于movie播放的需要,cast members在cast窗口里的位置和次序并非呈现优化的状态。

这些都是开发者需要解决的问题。

对于头一种情形,可以在cast窗口右击鼠标,选择find unused members选项, 然后delete (注意当时使用lingo调用了没有在time line里面直接使用的演员时需要慎重,最好的解决方案是,对于以上类型的演员单独使用一个cast,对于这个cast不采用这种方法,而是进行手动和目视查找)。

对于第二种情形,就需要使用save and compact命令。

下面简单介绍一下以上保存方式的区别
save(快捷键ctrl + S):保存你所有自从上次save后的改变,改变的信息是加在原有的版本之上,换句话说,如果你一直不断的save, 文件会越来越大,即使你删除了某个cast member,然后save, 文件还是不会减小,适用于编辑状态下保存文件。

save as:对于标准的windows应用程序而言,当你重新保存一个文件的时候,使用save as 命令。

不过对director来说,这个命令还有两个意义:第一,director在保存文件之前,先优化文件。

第二,你有了两个不同版本的movie文件。

在某些特殊情况下,director拒绝工作(例如应用程序出现假死机状态,不能用save保存),这时候利用save as再保存一次为新文件,就能够解决问题。

save and compact:这个指令和save as一样,先优化,再保存,和save as 不同的是,保存后自动删除旧文件,只留下最新的优化过的文件。

对于shockwave 和CD-ROM的开发来说,这个指令的重要性是不言而喻的。

publish as shockwave之前,必须执行一次save and compact。

而如果有什么意外发生,无法使用sava指令的时候,save and compact就成了不可或缺的救急措施。

最后简单的介绍一下director文件优化的次序:
首先被写入文件的是一个director文件的文件头部分,也就是说将要首先载入RAM的内容是关于cast,score的纪录(这里指的是cast member在cast里面的次序和位置等信息而非媒体内容)
接下来就是真实的媒体内容,嵌入式的媒体cast members先载入,优化时,这些members 按照他们在score窗口出现的先后次序重排,尽管你在cast 窗口没有办法看到重排的次序,但当你用save as 或save and compact 的时候,它是实实在在的发生了,也就是说score中的第一个帧所需要的所有的cast members都会先被写入文件。

最后director会检查所有还没有写入的嵌入的媒体members, 这次是按照它们在cast 窗口里的次序写入文件。

例如我在前面所提到的,按钮的over和down状态的members, 他们通常是被lingo来调用而不是直接显示在score窗口里的。

与此类似的情形还有puppetSound所调用的声音members。

还有一个小窍门,如果你有一些cast libraries, 需要和你的项目里的多个movies都保持外部连接的方式,那你不必要每一个movie都使用sava and compact, 你可以使用菜单栏Xtras --> update movies, 选择update movies, 这好像是一个save and compact 的批处理命令。

Q:如何建立超级链接?
A:on hyperlinkClicked me, data, range
statement(s)
end
如果是网页go to netpage
Q:滚动条的的划块怎么初始化?
A:on beginsprite me
sprite(me.spriteNum).member.scrollTop=0
end
Q: 在director中,如何改变分辨率以及屏幕刷新频率?
A: Three-m开发的HFCL_DisplayScreen.x32插件,可以改变分辨率,颜色深度,刷新率。

Q: 如何用Lingo语言调用“打开文件”和“保存文件”对话框?
A: fileIO xtra
1、displayOpen object me -- displays an open dialog and returns the selected fileName to lingo
2、displaySave object me, string title, string defaultFileName -- displays save dialog and returns selected fileName to lingo
Q: 如何改变一段文字中的某个文字或者某几个文字的颜色?
A: member(membernum).line[linenum].color=rgb(111,222,333)
member(membernum).char[1..2].color=rgb(111,222,333)
Q: 图标工具制作替换?
A: /SoftList/Catalog_107_SoftTime_Desc_1.html
这里有大部分的图标制作软件
大部分都是已经**过的
打不开的话
就直接进入 搜索一下图标工具就可以了
Q: 如何解director中声音图像不同步的问题?
A: 在Director 制作多媒体演示,由于图像、转场效果和动画的播放速率随机器的性能不同而导致播放速度的差异。

但声音通道的配音和配乐却以原始的固定速率播放,这样就导致了演示中的声音和画面的同步问题,而且这个问题简单依靠在Director 中调节帧速率是很麻烦的,也不容易在不同配置的机器上取得满意的效果。

下面就以一个简单的卡拉OK 歌曲的歌词显示与原唱同步的练习,来探讨如何将显示与配音同步。

同样的道理,也可以参照它应用到其它类型的演示应用中。

首先准备一首歌曲,要求使用Wave 文件格式。

歌曲的内容随意,但最好你能够找到歌词或能
在Lingo 语言里,有一个特殊的事件:cuePassed 它的格式为:
on cuePassed(channelID, cuePointNumber,cuePointName)
statement(s)
end
(其中:channelID 为声音通道号;cuePointNumber 标记点编号;cuePointName 标记点名称),这些参数载本例中并没有使用。

这个事件是Director 声音通道中的Wave 播放到声音通道的一个声音标记点时触发一次,我们就是利用对这个事件的检测来实现在Director 中的声画同步。

Director 本身没有为Wave 文件添加标记点的功能,因此需要使用其他软件来完成这项工作。

好在许多的声音编辑软件都能胜任这项工作,下面列出常见的几种:
Sound Forge
Cool Edit 2000
Ulead Media Studio 中的声音编辑。

下面我们就首先完成声音标记点的制作。

运行Sound Forge,打开要编辑的声音文件,使用EditTool 工具,配和播放试听定位到第一句歌词的起始处(考虑到视觉和听觉的习惯,以及Director 中处理和显示的延迟,应该将标记点从歌词的起始处前移0.2 秒左右),选择菜单Special \ Drop Maker 在此处创建一个标记点,也可以使用它的快捷键M 快速建立一个标记点。

使用同样的方法在每一句歌词的起始处都加入一个标记点,下图中的红色标记和虚线就是标记点的位置。

Sound Forge 默认的标记点名称为Maker xxxxx ,由于我们在Director 中没有使用到标记点名称,可以认可它的默认值,也可以在标记点上按鼠标右键选择Edit 为每一个标记点起一个自己喜欢或更有规律的名字。

最终完成后仍使用原文件名保存,加入的标记点不会对声音文件的音质产生任何影响。

考虑到各人使用的软件不同,下面简单说明在Cool Edit 2000 中如何进行加入标记点的操作。

运行Cool Edit 2000 并打开要编辑的Wav 文件,定位到添加标记点的位置,按F8 键或参见下图中的说明,为声音文件添加一个标记点。

也可以通过快捷按钮或菜单View \ Cue List 打开标记点编辑窗口,直观地进行标记点的添加和编辑。

完成以后将文件保存。

至此,加入标记点的工作就完成了。

运行Director 在脚色窗口将编辑好的声音文件导入,然后先建一个文本脚色成员用于以后的歌词显示,文字的内容随意(下面要通过Lingo 对文字脚色赋值显示),根据个人喜好设置好字体、颜色和大小。

还可以导入一幅或多幅图像作为将来显示的背景。

将声音脚色拖动到分镜表的声音通道1,设定其长度为标记点的总数+1(也就是有多少句歌词+1);把用于歌词显示的文本脚色成员放置到舞台的适当位置,设定它的起始帧为第二帧,结束帧与声音对齐;如果需要可以同时将演示背景图像设置好,但是要注意放置在底层。

舞台的布置到此也完成了。

如果你想知道前面加入标记点的操作有没有问题,可以在分镜表声音角色上面时间通道的任何一帧双击,打开帧速率设置面板。

选择Wait for Cue Point 并展开右边的下拉列表,从这里应该能看到加入的所有标记点(如下图),注意要按Cancel 取消这一步操作。

如果列表中只有Next 和End 两项,说明在声音中加入标记点的操作没有成功,可以参照前面的说明再重做一遍。

接下来就是练习的核心部分-- 脚本编写。

双击第一帧的脚本通道打开脚本编辑窗口,先输入以下内容:
global geci
on beginSprite
set geci = ["","青青杨柳风","悠悠桃花水", "小船儿漂来了", "俊俏的小阿妹", "眼睛水灵灵", "脸上红霞飞", "问一声小阿妹", "你要去见谁","要问阿妹去见谁呀", "阿妹心儿醉", "去见久别的情哥哥", "远方凯旋归", ...(考虑篇幅问题,删去了若干)]
end
on cuePassed
go the frame+1
member(1).text=geci[the frame]
end
on exitFrame
go the frame
end
配合Alt 键拖动脚本,使它的长度与声音角色相同。

在Director 中播放,观察是否达到了预期的结果。

下面来分析脚本的内容,脚本共有三个事件:
1、on beginSprite 事件在第一次运行脚本时将歌词以数组(表)的形式赋值给一个变量geci ,注意数组的第一个值为空,因为此时第一句歌词还没有开始(上面的脚本中省略了一部分歌词内容)。

2、on cuePassed 是实现这个练习的关键,每播放到一个声音标记点该事件被触发执行一次,在这个事件里完成跳转到下一帧、配合the frame 完成为显示歌词的角色成员赋值。

在这里要注意member (1).text = geci [the frame] 要求建立的歌词文本角色成员的编号为1,如果你的练习不同的话,可以修改脚本中的数字使它们对应起来。

3、on exitFrame 事件大家都明白,它使演示的播放停留在当前帧。

这个练习到此就全部完成了。

on cuePassed 事件的应用还有许多,这有待大家在使用中去探讨和发掘
Q: Director MX 2004中使用MIAW的体会?
A: Director MX 2004改变了使用MIAW的方式,还得我苦苦试了一下午。

在Director MX 2004中使用MIAW,应该这样写:
代码: miaw=window().new("bb")--bb.dir是一个Director文件
miaw.open()
如果不使用上面的语法,在Director10里面就会出错。

但是,如果文件是使用Director9或者以前版本建立的,在Director10里面就可以使用老的语法:
代码: window("bb").open()
不过,Director10里面的MIAW确实是方便多了,例如,可以使用movie来控制Window中的影片
例如,有两个Director影片,aa.dir和bb.dir,那么,在aa.dir中打开bb.dir,就可以直接调用bb.dir中的member、sprite甚至是handler
代码:miaw=window().new("bb")
miaw.open()
_player.window["bb"]
movie.go("bb1")
--也可以这样写:
--window("bb").movie.go("bb1")
那么,要在bb中调用aa的内容,可以这么写:
代码:_player.window["stage"].movie.go("aa1")
同样的,用这种语法可以完全控制MIAW中的内容了。

大家可以试试。

另一个改进,就是可以使用displayTemplate控制MIAW的风格
例如
代码:--禁止在标题栏中显示最小化、最大化和关闭按钮miaw.titleBarOptions.minimizeBox=FALSEl
miaw.titleBarOptions.maximizeBox=FALSE
miaw.titleBarOptions.closeBox=FALSE
Q:怎样使视频及flash页面能将内容播放完整,又能自动跳到下一页的内容呢?
A:on exitframe me
if sprite(x).playing then
go to the frame
else
go to the frame+1
end if
x是动画所在的通道
Q:怎样去掉视频外边的黑边?
A::用遮罩。

做个视频框的图片,把它放在视频层之上,把视频属性中direct to stage 选项去掉即可。

很方便。

Q:如何控制mpeg中的声音的大小?
A:setvolume(sprite X,-20)
用这个命令,X是视频所在的通道,-20是音响,从-100到0,从小到大,-20是引入时默认的。

Q:如何在D里的指定位置调入视频文件?
A:Member("mpg1").file=the moviepath&"Mpg\01.avi"
Q:用D制作的东西,如何放到网上?
A:发布成SHOCKWAAVE格式就可以了。

Q:如何制作启动界面?
A:.bmp图片取与.exe同名,放在同目录。

Q:如何使鼠标停在按钮上时出文字提示?
A:1,on mouseenter me
sprite(n).visible=1
end
on mouseleave me
sprite(n).visible=0
end
2, 用Display Text和Tooltip(在行为库control里)把Display Text加在示例文本上(就是显示文字的字体颜色等等)类型选择Tooltip把这个示例文本放到舞台以外就可以了然后把Tooltip行为加到要显示文字的演员上。

在text of tool tip 里填上要显示的文字在see notes 中选择显示的位置就可以了其他的基本上就不用改了。

Q:请问怎么让鼠标隐常?
A:cursosr=200
Q:*.dxr和*.dcr有什么区别?
A:dcr主要用于网上的流媒体传输,类似于flash发布成swf,因此存在网络对其lingo功能的限制,如不能对本地硬盘文件的操作,访问受限等情况;dxr是加密的dir影片格式,不存在以上的约束,但文件格式要稍微大一些。

具体用哪种格式就看你的需要了
Q:怎么来检测一个演员是否存在呢?
A:on startmovie
--if member(1, "hh").name = "he" then
-- go to frame 15
-- end if
--检测演员表hh里边的编号为1的演员名字是不是为he
if (member("he").number > 0) then
--检测演员表内名为he的演员是不是存在
go to frame 15。

相关文档
最新文档