初级视频编辑室|草蜢非编论坛|初级视编室|草蜢视频编辑|会声会影|威力导演|电子相册

 找回密码
 加入初编室
搜索
查看: 1161|回复: 6
打印 上一主题 下一主题

关于Director与Flash之间的通讯!

[复制链接]

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

跳转到指定楼层
楼主
发表于 2014-11-5 07:58:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
onekey onekey
Flash To Director的信息传递:
一般来说,Flash给Director传递消息有下面三个方法:
(1)在flash中可以通过Geturl函数直接调用Director的Lingo命令,

on (rollover)
{ geturl ("lingo : cursor 280");}
on (rollout)
{ geturl ("lingo : cursor 0");}
将上面的actionscript加在flash按钮上,然后将其导入到Director中就能实现光标的变换了。
********
注:当然也可以用linggotonetpage来打开超级连接。

(2)使用flash中的event命令,如:
geturl ("event:readtxt,\" aa.txt\" ,\" dairy\"")
上面的actionscript可以执行director中的影片脚本中的readtxt函数,并传递“aa.txt”和“dairy”两个参数给readtxt函数。

(3)在Flash中通过Geturl传送参数给Director,在Director中接受Flash传递的参数,然后执行相应的lingo命令,如:
在flash的按钮上加入下面的ctionscript
On (Release)
Get URL ("botton1")
End On
然后在DR的moviescript中,使用geturl函数执行相应的lingo命令:
on geturl me,kk –kk为geturl函数的参数
case kk of
"botton1": go to frame "Mark1"
"botton2": go to frame "Mark2"
end case
end geturl
楼主热帖
河边已是一首歌
回复

使用道具 举报

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

沙发
 楼主| 发表于 2014-11-5 07:58:26 | 只看该作者
Director To Flash的信息传递:
在Director中对flash的信息传递的指令相对要丰富得多
(1)在Director中控制flash演员播放、停止等命令
sprite(FlashSpriteNum).play() --播放 flash 演员
sprite(FlashSpriteNum).stop() –停止flash演员的播放
类似的函数有 rewind()、gotoframe() 等等,其详细的用法见前面的“控制flash”。

(2)使用getVariable函数来直接获取flash演员中的值
getVariable(sprite FlashSpriteNum, "password")
--获取位于通道FlashSpriteNum中的flash演员中变量password的值

(3)使用setVariable函数来设置flash演员中的值
setVariable(sprite FlashSpriteNum, "password", "soshow.org")
--将位于通道FlashSpriteNum中flash演员中的password变量的值设置为soshow.org
河边已是一首歌

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

板凳
 楼主| 发表于 2014-11-5 07:58:37 | 只看该作者
帧数控制

sprite(me.spritenum).gotoframe(1)

在DR中控制flash片头的脚本

on exitFrame
  if  the doubleClick  then go the frame+1 --双击跳过片头
  if sprite(spnum).frame < sprite(spnum).member.frameCount then--判断是否播放完成后
    go the frame
   else
   go the frame+1

end if
end


on exitFrame me
    if sprite(spnum).playing then--判断是否在播放
    go the frame
    if the mouseDown  then go the frame+1 --单击跳过
    else    go the frame+1
  end if
end
河边已是一首歌

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

地板
 楼主| 发表于 2014-11-5 07:59:06 | 只看该作者
再补充一点

1. 正常播放(Playing)

Sprite(whichFlashSprite).play()

这里使用Director 7 and 8 所使用的dot syntax. 括号里的whichFlashSprite, 你替换成相应的Flash 所在的通道号就可以了。如果Flash sprite目前是暂停的, play 指令将会使Flash sprite 从所停止的那一帧开始播放, 而不是从头播放。

2. 步进与步退(Stepping frame by frame)

Sprite(whichFlashSprite).frame = sprite(whichFlashSprite).frame + 1

或者

Sprite(whichFlashSprite).frame = sprite(whichFlashSprite).frame - 1

这也比较容易理解, 结合 mouseUp 事件你就可以一帧一帧的步进或步退。

3. 倒退回第一帧(Rewinding)

Sprite(whichFlashSprite).rewind()

4. 停止(Stopping)

Sprite(whichFlashSprite).stop()

这时Flash会停止在当前的帧上。而不是返回第一帧。

或者

Sprite(whichFlashSprite).hold()

同样Flash会停止在当前的帧上, 不过如果Flash 里有声音文件, 声音部分不受影响, 继续播放。
河边已是一首歌

428

主题

8464

帖子

7万

积分

超级版主

Rank: 8Rank: 8

精华帖勋章论坛版主活跃会员百帖纪念荣誉勋章帅哥会员论坛万元户

5#
发表于 2014-11-9 20:20:34 | 只看该作者
谢谢楼主提供分享

206

主题

4527

帖子

7万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

活跃会员帅哥会员百帖纪念荣誉勋章论坛万元户

6#
发表于 2014-11-16 09:06:37 | 只看该作者
谢谢楼主提供分享!!

131

主题

5844

帖子

12万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

帅哥会员活跃会员论坛万元户百帖纪念荣誉勋章

7#
发表于 2015-1-13 10:50:21 | 只看该作者
看一看,逛一逛。
您需要登录后才可以回帖 登录 | 加入初编室

本版积分规则

手机版|小黑屋|初级视频编辑室

GMT+8, 2024-12-26 02:00 , Processed in 0.119127 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表