也许你是初学者, 导入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 看起来简单, 使用起来却很不方便。这也是初学者要克服的一个难点。
|
从Flash到 Director
发布: 2010-7-03 01:43 | 作者: 干海棠 | 来源: 网络转载 | 查看: 259次