Предполагая, что это анимация на основе кадров или SWF, при загрузке SWF вы можете получить общее количество кадров, используя MovieClip (mySwf) .currentScene.numFrames.Таким образом, вы могли бы сбрить 3 секунды, чтобы определить, сколько кадров будет составлять 3 секунды, исходя из текущей частоты кадров, а затем в обратном вызове ENTER_FRAME проверьте currentFrame и действуйте, когда вы обнаружите, что он равенкадров).Код выглядит так:
* Примечание: код отредактирован, см. Комментарии *
var mySwf:MovieClip;
var reducedTotalFrames:int;
var clipLoader:Loader = new Loader();
clipLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
clipLoader.load(new URLRequest("http://www.mysite.com/mySwf.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);
mySwf.gotoAndPlay(1);
}
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();
}
}
Код не в моей голове, но, по крайней мере, еслион уже не работает как есть, у вас должно быть достаточно четкое понимание концепции, чтобы заставить ее работать или реализовывать ее по своему усмотрению.