Director和Flash结合运用 郎宇新 2001年 50期 在Flash 3.0以后的版本中都支持向Director发送Lingo命令,当然现在大家多数都在用Flash 5.0,这一点是没有问题了。这里我们作一个示例,在Flash中按钮的名称为“第一章”,在Director中按下之后它可以跳到名为“chapter 1”的Marker处。   这里有三种方法可以实现从Flash中向Director发送命令:   #1一、 最为简单直接的方法   首先,在Flash中新建一文件,并制作一个按钮,按钮的名称为第一章,右键单击按钮,在弹出的菜单中选择“Actions”项在弹出的“Actions”对话框左侧的目录中双击“Basic Actions”下的“Get URL”,之后在下面的URL地址栏里输入:Lingo:go to frame“chapter 1”(^50020701a^1)所示,其余的地方什么也不要填,然后保存并发布成标准的swa格式的Flash动画就可以了。   在Director 你要做的就是首先引入这个文件并把它放到舞台上,使其从第一帧延续到第十帧,然后在第十帧处建立一个名为“chapter 1”的Marker,并在这个帧脚本中输入下面的语句,目的是使播放头能停在这一帧。   on exitframe   end go to the frame   为了使观察效果更明显,我们先让影片运行时停在第一帧,即也在帧脚本中输入上面的语句,接下来在“chapter 1”Marker处放置另外一个动画,这里我放了一个周华健的“最近比较烦”Flash动画,现在播放影片,影片停在第一帧,按下“第一章”后,播放头跳到了“chapter 1”Marker处,MTV开始播放了吧!这里你可以通过“score”窗口来观察播放头的跳转,我的“score”窗口是这样的(^50020701b^2)。   这种方法简单直接,而且不需要你做过多的设置,很容易吧!   #1二、干脆利索的方法   这种方法目的性强,用起来干脆利索,但它比上面的方法稍难理解,其实这种方法一点也不难,关键看你对Lingo有多少了解了。开始的步骤同上面一样,但在URL的地址栏里不需要你输入那么多语句,这次你只要输入“chapter 1”就可以了,具体在Flash窗口中的语句如下:   on (release){    getURL (“chapter 1”);   }   回到Director中,从“window”菜单中选择“script”或按“ctrl+0”,弹出“script window”窗口,在其中输入如下语句:   on geturl me   go to frame “chapter 1”   end   保存文件后运行影片,按下“第一章”按钮,这时的效果与上一种方法是一样的,播放头都会跳转到名为“chapter 1”的Marker处。   #1三、最为灵活多变的方法   有了第二种方法的基础,掌握这种方法就不难了。这种方法也是我最为推荐的方法,它的最大好处在于它的灵活性,你可以一次性的完成所有在Flash中的工作,之后就不必在两个软件之间来回的转换了,对于分工合作的工作小组来说是最好不过的了。   这种方法通过在Flash中产生一个Event 事件来告诉Director要执行哪一个事件,至于事件的内容,就由Director自己来定了。具体的作法是这样的:在“Get Url”栏里输入如下语句:“Event:M_click”。在Director中打开“script”窗口输入:   on M_clcik   go to frame “chapter 1”   end   再播放影片,按下“第一章”按钮,同样播放头会跳到名为“chapter 1”的Marker处。有人会问了,这不与前面的一样吗?还不如第一种方法来得快。其实不然,如果你需要一个按钮做很多工作并需要多行Lingo代码的时候,你需要在Flash中双击很多次“Get Url”,然后写上很多行“Lingo:………”当你一不小心写错时,在Director中又很难找出错误,找出后还得回到Flash中修改,无形中为你增添了不少麻烦。其实在这里“M_click”属于一个在Director中自定义的事件,Flash要做的只是告诉Director去做“M_click”这件事。“M_clcik”的内容可以更复杂,比如用“open”命令打开另外一个窗口,用“sound.play()”命令来播放一段音乐等等,它都能胜任,如果你是一个Flash高手的话,你可以做出很漂亮的按钮,它不但可以控制Flash中的动画,还可以控制Dircetor中的程序跳转。这种方法的灵活性也就在此体现出来了。   这三种方法各有所长,选择哪一种方法要看你的喜好了,我个人强烈推荐你采用第三种方法,因为我在摸索这种配合方法时走了不少的弯路,最后才发现第三种才是最好的。   细心的读者已经发现,在Dircetor中鼠标移到按钮上时并没有任何的变化,但在Flash中鼠标会变成手的形状。其实实现这个功能也很简单,你可以在Flash 中加入下面的语句:   on(release){   getURL (“event:M_click”);   }   on (rollout){   getURL (“event:M_rollout”);   }   on (rollOver){    getURL (“event:M_rollover”);   }   在Director的“script window”中输入:   on M_clcik   go to fraem “chapter 1”   end   on M_rollover   cursor 280  ──使鼠标变成手指形状;   end   on M_rollout   cursor 0 ──使鼠标恢复为原来的箭头形状;   end   这样按钮的功能就基本上实现了,不但能实现动态效果、变换鼠标,还能实现程序跳转控制,你可以自由地在Director中GO 来GO去了!要是想你的按钮能实现更多更复杂的功能那就要看你的Lingo水平了!