可以通过Javascript控制SWF吗?

lew*_*uez 4 javascript flash actionscript

情况如下:

客户想要一个循环的SWF文件暂停两秒钟才能再次开始播放(这是徽标上的一个很好的构建动画,但是徽标不会长时间停留在屏幕上因为电影重复所以用户不能很长时间看这个标志.这是无关紧要的,但很好的背景故事.)

他们为我提供了一个SWF文件,但不是FLA.当我要求FLA时,我被告知包含FLA的硬盘崩溃并且无法检索.所以,这几乎是一个死胡同.

在我尝试去编译SWF和所有有趣的东西之前,我想知道是否有任何方法可以用HTML和Javascript完成.那是:

  1. 有SWF循环
  2. 在重新启动之前暂停电影两秒钟

你怎么看?

Zev*_*van 5

使用javascript不容易实现这一点,但如果将swf加载到另一个swf中则非常容易.然后,您可以访问原始swf的主时间轴,并且您可以控制它.如果你想控制一个名为targetMovie.swf的电影,你可以这样做:

var loader:Loader = new Loader();
loader.load(new URLRequest("targetMovie.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
addChild(loader);

var logoMovie:MovieClip;
function onComplete(evt:Event):void{
    logoMovie = MovieClip(loader.content);
    // call pauseMovie at end of timeline
    logoMovie.addFrameScript(logoMovie.totalFrames-1, pauseMovie);
}
function pauseMovie():void{
    logoMovie.stop();
    // delay for two seconds;
    setTimeout(function(){
      logoMovie.play();   
        }, 2000);
}
Run Code Online (Sandbox Code Playgroud)

我在这里上传了一些源文件.