2016-05-26 13 views
0

私はHTML5キャンバスを作成し、ムービー(Movie1)のような長方形を追加しました 次にアニメーションを作成しました。ムービー1 アニメーションを停止しようとするとJSがどうなるか分かりません。Adob​​e Animate GotoAndStopムービークリップ

AS3の処置:FRAME1

trace (this.Movie1); 
this.Movie1.gotoAndStop(1); 

私はJSでそれを記述する必要がどのように?

私は別の方法で確認しますが、すべて動作しません。私は、未定義またはnull参照のプロパティ 'gotoAndStop' を取得できません

はまた、私は

this.stop(); 
alert(this.Movie1);// output: MovieClip (name=null) 
//this.Movie1.gotoAndStop(1); 

this.addEventListener('click', alertpopup); 

function alertpopup(){ 

    //this.Movie1.gotoAndStop(1); 
    alert(this.Movie1); // output: undefined ??? 
} 

だから、第二の例を書いた:

this.Movie1.gotoAndStop(1); 
Movie1.gotoAndStop(1); 

は、私は、コンソールIEを開いて、

SCRIPT5007

が見ました関数Init()の最後に生成されたHTMLファイルにコードを挿入した場合にのみ、このタスクを決定しました。このようなもの

var canvas, stage, exportRoot; 
function init() { 
    // --- write your JS code here --- 

    canvas = document.getElementById("canvas"); 
    exportRoot = new lib.ExAS3_Canvas(); 

    stage = new createjs.Stage(canvas); 
    stage.addChild(exportRoot); 
    stage.update(); 

    createjs.Ticker.setFPS(lib.properties.fps); 
    createjs.Ticker.addEventListener("tick", stage); 

    Update(exportRoot); 
} 

function Update(root){ 
    <!-- write your code here --> 
    root.stop(); 
    //this.Movie1.name = 'Movie1'; 
    console.log("m=" + root.Movie1); 
    root.Movie1.stop(); 

    root.Movie1.addEventListener('click', alertpopup); 

    function alertpopup(){ 
     root.Movie1.gotoAndStop(1); 
     console.log("r=" + root.Movie1); 
    } 
} 

なぜコードがIDEから機能しないのですか?

私はexportRoot上の私の最初のフレームにthisを変更しようと、それは部分的に

//this.Movie1.stop(); // it doesn't work 
//exportRoot.Movie1.stop(); // it doesn't work 
this.Movie1.addEventListener('click', alertpopup); 
var i = 0; 
function alertpopup(){ 
    i++; 
    if(i==2) i = 0; 
    exportRoot.Movie1.gotoAndStop(i);      
} 

答えて

1

に動作します私はこの(最初のフレームでコードを書くことは、ステージ上のムービークリップとの接触を取得中に問題を与えることがわかりました。 Movie1) - しかし、2番目のフレームにコードを置くと役立ちます。また、関数内で "this"を使用すると、通常のjsエラーが発生することが判明しました。 "this"は関数を指し、 "内側"(ステージ)のオブジェクトではありません。この問題を変数 "var that = this;"で解決する関数内で "this"の代わりに "that"を使用します。

+0

ありがとうございます。私はIDEなしでCreateJSを使用する必要があるすべてのプログラムのために思う。それはより簡単になるでしょう。しかし、私はメモ帳+の代わりに通常のJSエディタを持っていません。 – askeet

関連する問題