各フレームにムービークリップが含まれる30〜40フレームのプロジェクトがあります。各フレームをスライドと考えてください。ステージの下部には、これらのスライドの機能を制御するボタンがあります(たとえば、再生、一時停止、次へ、前へ、スピードアップ、スローダウン、リフレッシュ)。しかし、私に頭痛の種を与えている2つのボタンは、手動モードと自動モードのボタンです。それらの名前は正確にそれらがどのように聞こえるかであり、各mcが各フレームで再生された後に手動で停止する必要があります。Autoは各フレームを順番に再生する必要があります。私が今設定している方法は、各mcが「finished」と「stopped」のEventDispatchを起動することです。最後にクリックされたボタンに応じて、ステージはイベントをリッスンし、4秒間一時停止(setInterval)してgotoNextFrameするか、ユーザーが次をクリックするまでそのフレームで停止します。スイッチケースを試してみました、
私はかなり初心者なので、優しくしてください。そして、それがこれ以上役立つなら、私はflvをアップロードします。どうもありがとうございました。
//Manual button actions
function manual_onClick(event:MouseEvent)
{
manual_btn.visible = false;
auto_btn.visible = true;
gotoAndStop(currentFrame);
stage.removeEventListener("finished", mcFinished);
stage.addEventListener("stopped",stopmc,false,0);
function stopmc(e:Event):void
{
trace("mc stop");
stage.removeEventListener("stopped",stopmc);
}
}
//Auto button actions
function auto_onClick(event:MouseEvent)
{
gotoAndStop(currentFrame + 1);
manual_btn.visible = true;
auto_btn.visible = false;
stage.addEventListener("finished", mcFinished2,false,1);
function mcFinished2(e:Event):void
{
var ID2 = setInterval(goNextFrame2,3000);
trace("mc complete");
function goNextFrame2()
{
gotoAndStop( currentFrame + 1 );
clearInterval( ID2 );
stage.removeEventListener("finished", mcFinished2);
}
}
}
および各mcからのdispatchEvent
stop();
dispatchEvent(new Event("finished", true));
dispatchEvent(new Event("stopped", true));
再度、感謝します!スコット
これがスイッチケースの試みです...
function onBtnClicked(evt:MouseEvent):void
{
var theBtn:DisplayObject = evt.currentTarget as DisplayObject;
var lastBtn:DisplayObject;
if (lastBtn)
{
lastBtn.addEventListener(MouseEvent.CLICK, onBtnClicked);
}
lastBtn = theBtn;
switch (theBtn)
{
case auto_btn :
//button one actions;
gotoAndStop(currentFrame + 1);
manual_btn.visible = true;
auto_btn.visible = false;
trace("auto button clicked");
stage.addEventListener("finished", mcFinished);
function mcFinished(e:Event):void
{
var ID = new setInterval(goNextFrame,3000);
trace("mc complete");
function goNextFrame()
{
gotoAndStop( currentFrame + 1 );
clearInterval( ID );
stage.removeEventListener("finished", mcFinished);
stage.addEventListener("finished", mcFinished);
}
}
break;
case manual_btn :
manual_btn.visible = false;
auto_btn.visible = true;
trace("manual button clicked");
stage.removeEventListener("finished", mcFinished);
stage.addEventListener("stopped",stopmc,false,1);
function stopmc(e:Event):void
{
trace("mc stop");
stage.addEventListener("stopped",stopmc);
stage.removeEventListener("stopped",stopmc);
}
break;
}
}