1

このコードでは、インポートされた .swf ファイルの再生中に進行するプログレスバーが必要ですが、プログレス バーでドラッガーをドラッグできる必要があります (つまり、ドラッガーの移動速度は .swf ファイルの再生速度と同期する必要があります)。Argument error: #2109 Frame label 459.99 not found in scene1 が発生しました。

var loader:Loader = new Loader();
playBtn.visible = true;

pauseBtn.visible = false;
btn_00.addEventListener(MouseEvent.CLICK, fileLoaded);
btn_01.addEventListener(MouseEvent.CLICK, fileLoaded);
btn_02.addEventListener(MouseEvent.CLICK, fileLoaded);
function fileLoaded(evt:MouseEvent):void
{
    var fileName:String = evt.currentTarget.name;
    var fileNumber:String = fileName.split("_")[1];
    var urlPath:String = "assets/file_" + fileNumber + ".swf";
    loader.load(new URLRequest(urlPath));
    addChild(loader);
}
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
function swfLoaded(event:Event):void
{
    addEventListener(Event.ENTER_FRAME, trackPlayback);
}
function trackPlayback(event:Event):void
{
    var perPlayed:Number = MovieClip(loader.content).currentFrame / MovieClip(loader.content).totalFrames;
    progressbar.drag.x = (progressbar.bar.width - progressbar.drag.width) * perPlayed;
}
progressbar.drag.buttonMode = true;
var dragClicked:Boolean = false;
var xpos:Number = progressbar.bar.x * progressbar.drag.width;
progressbar.drag.addEventListener(MouseEvent.MOUSE_DOWN,dragMouseDown);
function dragMouseDown(evt:MouseEvent):void
{
    trace(" inside mouse down ");
    dragClicked = true;
    progressbar.drag.startDrag(false,new Rectangle(xpos,0,progressbar.width-progressbar.drag.width,0));
}

progressbar.drag.addEventListener(MouseEvent.MOUSE_UP,dragMouseUp);
function dragMouseUp(evt:MouseEvent):void
{
    dragClicked = false;
    progressbar.drag.stopDrag();
    var cnt:Number = (progressbar.drag.x/(progressbar.width-progressbar.drag.width))*MovieClip(loader.content).totalFrames;
    MovieClip(loader.content).gotoAndPlay(cnt);
  }

Pls は私の問題を解決します。

前もって感謝します。

4

1 に答える 1

0

特定のフレームにアクセスするには、現在浮動小数点値を使用している整数値を指定する必要があります。

簡単な修正は、を:にキャストするNumberことです。int

MovieClip(loader.content).gotoAndPlay(int(cnt));
于 2012-11-26T11:35:39.690 に答える