Flash CS5:AS3 - 导入swf播放X秒?

时间:2011-04-11 00:25:09

标签: actionscript-3 flash flash-cs5

我需要在开始时使用swf加载,但我不想播放视频的最后3秒。

有人可以帮助我使用基本上我的swf玩“x”秒的代码吗?

到目前为止我所拥有的内容..目前它已设置为播放swf,但从中减去“x”秒但由于某种原因它似乎无法正常工作

var mySwf:MovieClip;
var reducedTotalFrames:int;

var clipLoader:Loader = new Loader();
clipLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
clipLoader.load(new URLRequest("schoolintro.swf"));

function loadComplete(e:Event):void
{
     mySwf = LoaderInfo(e.currentTarget).content as MovieClip;

     var totalFrameCount:int = mySwf.currentScene.numFrames;

     var secondsToSubtract:int = 3;

     var threeSecondFrameCount:int = (stage.frameRate * secondsToSubtract);

     reducedTotalFrames = totalFrameCount - threeSecondFrameCount;

     stage.addEventListener(Event.ENTER_FRAME, onRender);

     stage.addChild(mySwf);


}

function onRender(e:Event):void
{
     if(mySwf != null && mySwf.currentFrame >= reducedTotalFrames){
          //This is the end of the SWF with 3 seconds trimmed off. Here we can stop play
          stage.removeEventListener(Event.ENTER_FRAME, onRender);
          mySwf.stop();
          //doSomethingElse();
     }
}

2 个答案:

答案 0 :(得分:0)

我认为您只需要从

更改此行
var threeSecondFrameCount:int = (stage.frameRate * secondsToSubtract);

var threeSecondFrameCount:int = (stage.frameRate / secondsToSubtract);

不确定这是否是你想要的。

答案 1 :(得分:0)

尝试一些基本的调试,比如在onRender里面的代码中放置trace语句以确保它被调用,以确保mySwf引用正常工作(例如,跟踪mySwf.currentScene.numFrames,如果它是0,你知道你没有正确引用你的swf或swf不是基于帧的)。如果SWF不是基于帧的,那么由于加载的SWF内部进行的所有动画/动作都是基于代码的,所以你将会遇到控制甚至做任何事情的实际问题。