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

标题: 关于Director与Flash之间的通讯! [打印本页]

作者: 五星上将    时间: 2014-11-5 07:58
标题: 关于Director与Flash之间的通讯!
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

作者: 五星上将    时间: 2014-11-5 07:58
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
作者: 五星上将    时间: 2014-11-5 07:58
帧数控制

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
作者: 五星上将    时间: 2014-11-5 07:59
再补充一点

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 里有声音文件, 声音部分不受影响, 继续播放。
作者: duanxb    时间: 2014-11-9 20:20
谢谢楼主提供分享
作者: gxj000    时间: 2014-11-16 09:06
谢谢楼主提供分享!!
作者: yipingzi    时间: 2015-1-13 10:50
看一看,逛一逛。




欢迎光临 初级视频编辑室|草蜢非编论坛|初级视编室|草蜢视频编辑|会声会影|威力导演|电子相册 (http://shibianshi.com/) Powered by Discuz! X3.2