当前位置:早雪网网络学院设计学院Director → 在Director中应用Flash-Part II从Flash到 Director

在Director中应用Flash-Part II从Flash到 Director

减小字体 增大字体 作者:不详  来源:supcode.com收集整理  发布时间:2005-7-23 17:01:05
在Director中应用Flash – Part II. 从Flash到 Director

Part II. Flash Director

也许你是初学者, 导入Director Flash movie 可以控制Director, 这就给了我们绝佳的机会在Director里使用Flash 按钮,那么Flash 是如何传递信息给Director呢?事实上,常用的方法有三种, 都是利用Flash Actionscript里的GetURL指令,这个指令其实是非常多样化的, 可以用来控制浏览器, 传递javascript 指令, 控制打印功能, 同时也是与Director沟通的重要通道,同时这个指令在各个Flash版本里都兼容。好, 我们就来比较一下这三种方法:  

1.          传递一个字符串(pass a string)

最直接的方法就是写一个字符串在Flash 然后传递给Director, 再由Director Lingo的特定句柄来接受该字符串作为指令参数

下面的例子是一个Flash 按钮来控制Director的电影来其移动播放头到一个指定的帧, 我们用帧的标签(marker)来标记。在Flash, 对按钮在舞台上的instance 应用Actionscript 具体地说就是用GetURL这个指令, 当然这儿不是用来指向一个网址的, 而是用来和Director沟通。

这里我使用Flash 3中的截图,在GetURL的参数栏里填入 "section1"作为字符串,而这个字符串就是下图可见的Director 电影里的帧的标签名。

好, 来到Director 中, Score窗口可以看出有两个场景, 第一到第五帧是导入的shockwave Flash 按钮(非常小只有522bytes; 从第十五到第二十帧是另一场景, 你可以看到帧的标签“section1. 你现在为一要做的就是写下下面的behavior 然后赋予给舞台上的flash 按纽。具体的语句如下:

on getURL me, flashString

  go to frame flashString

end getURL

这里我们应用了lingo里预设的事件 "getURL" 来响应Flash 按钮被按下时所需执行的指令, "flashString" 就是需要传递给下一句 "go to"命令的参数。当然它可以任何的变量名字,只要它符合变量命的命名规则。

2.          直接传递Lingo 指令(Make a Lingo statement directly)

这种方法也非常的直截了当, 你可以直接就写下lingo 的指令作为GetURL的参数

请注意你在参数栏先写下:“Lingo: 来告诉 Flash它后面的内容是Lingo 指令而已。还有一点要注意的是请按照Lingo 的语法来书写尤其是冒号(“”)的使用。

这回在Director里更简单了, 你什么都不需要做, 导入Flash 按钮象上面的例子那样布置好舞台就行了。也许你以为这是最简单方便的做法, 不过lingo程序员却不会这么想, 这是典型的hard-code, 缺少灵活性, 一旦你的舞台布置有了改变, 你就得回到Flash 从头来过。那么Lingo程序员喜欢什么样的方式来让Flash Director来沟通呢? 请看下面的方法。

3.        传递一个事件来激活Lingo 句柄(Specify an event to call a Lingo handler

这次在GetURL的参数栏里, 你要填入的是:

event: FlashMouseUp "section1"

关键是用 "event:"这个关键词来告诉Flash, 这次要传递给Director 的是一个事件以及可能和该事件有关的参数, 你可以完全个性化设置事件名以及参数内容。

Director里, 这次你要写的lingo behavior是:

on FlashMouseUp me, textString

  go to frame textString

end

其实更好更灵活的写法是:在Flash里只写事件名, 例如: “event:butnClick”,记得不要勾选expression; 回到Director你这样写behavior:

on butnClick me

  doAction(“section1”) me

end

on doAction(var) me

  go to var

end

这样你就保持了在Director里的完全控制, 如果你希望响应这个事件来完成其他的动作, 无需返回Flash 在上面的behavior里稍作修改就成了, 是不是更方便呢。 通常作为Lingo 程序员关心的是使用的灵活性和可重复使用性。一般的说, 好的lingo script 难写易用, 而一般的用户写的lingo script 看起来简单, 使用起来却很不方便。这也是初学者要克服的一个难点。

[数据载入中...] [返回上一页] [打 印]