2016-06-14 7 views
0

今、私は2つの線形半分で演奏された2つの別々のシーンで分けられたスポーツマッチのシミュレーションを構築しています。マッチで得点されたゴールは、得点が発生するとステージ上のボタンとして表示されます。このボタンは、目標を再生するための参照として機能します。後半(シーン2)の間、前半(シーン1)にアクセスできるようにしなければならないという得点 私は、参照する個々のリプレイとして機能する目標ごとに余分なシーンを作成しました。私は、ユーザーのことができるようにしたいと思い何AS3:別のシーン(またはフレームシーケンス)にジャンプしてからジャンプしたフレームに戻る方法

は、リプレイを見る、任意の選択された時点でその再生ボタンをクリックすることで、その後、それはもともとから飛び降り正確なフレームに復帰し、プレーそれが望ましいときにそこから。

movieClipsaddChildのメソッドを使用できない理由は、後でhtmlに埋め込むので、最終的なSWFが透明な背景を維持したいということです。

addChildメソッドを使用すると、2つの部分的に透明なmovieClipsが同時に表示され、同時に実行されていることがわかります。

これを置き換える方法を見つけることができれば、これは適した方法です。

もう1つはcurrentFrameおよび/またはcurrentLabelの方法を使用していますが、私はどのようにするかわかりません。

私は、あなたに事柄に関するより明確な洞察を与えるプロジェクト.fla fileを持っています。

答えて

1

インスタンス名がreplayBtnの再生ボタンがあるとします。目標は、起動するたびに、あなたのタイムラインで、今

//define a variable to hold the last replay frame 
var lastReplayFrame:int = 0; 

//define a variable to hold the frame to go back to once a replay is done 
var replayReturnFrame:int = 0; 

//create a function to call after a replay is done 
function replayReturn(){ 
    //if we've set a frame to jump back to 
    if(replayReturnFrame > 0){ 
     //go there and resume playing 
     this.gotoAndPlay(replayReturnFrame); 

     //reset the return frame so we don't go back there the next time if the button isn't hit 
     replayReturnFrame = 0; 
    } 
} 

//create the click handler for the replay button: 
function replayClick(e:Event):void { 
    //check if there is a replay available 
    if(lastReplayFrame > 0){ 
     //store the current frame before jumping back 
     replayReturnFrame = this.currentFrame; 

     gotoAndPlay(lastReplayFrame); 
    } 
} 

//add the click event listener to the replay button instance 
replayBtn.addEventListener(MouseEvent.CLICK, replayClick); 

例えば(、:

をあなたのタイムラインの最初のフレームで、次のVARSと関数を作成します。ここではこれを設定する一つの方法です再生が開始すべき場所の最初のフレーム)、キーフレームに次のコードを置く:

lastReplayFrame = this.currentFrame; 

その後、リプレイの最後のフレームに、キーフレーム上でこのコードを配置:

replayReturn(); 
+0

これはまさに私が探していたものです。ありがとうございました! – too1s

関連する問題