2

HTML ページのスクリプトから、作成した Adob​​e Animate CC アニメーションで何が起こるかを制御しようとしています。たとえば、船のアニメーションに gotoAndPlay(5) を指示しようとしているスクリプトが機能しないことがわかります。とにかく、船のアニメーションはそれに反応していません。正しくアドレス指定/命名していないためだと思います。私のアニメーションと話すのを手伝ってください。以下のコードを参照してください。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lets talk to each other</title>


<script src="http://code.createjs.com/easeljs-0.8.1.min.js"></script>
<script src="http://code.createjs.com/tweenjs-0.6.1.min.js"></script>
<script src="http://code.createjs.com/movieclip-0.8.1.min.js"></script>
<script src="ship.js"></script>
<script src="car.js"></script>

<script>
function init () {

    var canvas, stage, exportRoot;

    canvas = document.getElementById("canvas_ship");
    exportRoot = new libs_ship.ship();

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

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


    canvas = document.getElementById("canvas_car");
    exportRoot = new libs_car.car();

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

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

function Tell_Canvas_Ship_to_gotoAndPlay5(){
    canvas_ship.gotoAndPlay(5);
}

</script>
</head>

<body onload="init();" style="background-color:#D4D4D4">
    <canvas id="canvas_ship" width="300" height="250" style="background-color:#FFFFFF"></canvas>
    <canvas id="canvas_car" width="300" height="250" style="background-color:#FFFFFF"></canvas>
</body>
</html>
4

2 に答える 2

1

私は助けを受け取り、答えを共有します。どういたしまして。いつか私を朝食に招待してください。

Adobe Animate では、ライブラリの名前空間 ([詳細設定] タブの [発行] 設定) を lib_jerry または任意のカスタム名に変更する必要があります...他のアニメーションとは異なる限り。次に、このコードのセットアップに従ってください。Animate アニメーション内から関数を呼び出すことができます。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Container</title>

<script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script>
<script src="tommy.js"></script>
<script src="jerry.js"></script>
<script>

var canvas, stage, tomtom, jerjer;
function init() {

    var exportRoot;

    //Tommy
    canvas = document.getElementById("canvas_tommy");

    tomtom = new lib_tommy.tommy();
    stage = new createjs.Stage(canvas);
    stage.addChild(tomtom);
    stage.update();

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


    //Jerry
    canvas = document.getElementById("canvas_jerry");

    jerjer = new lib_jerry.jerry();

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

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

}

function button_from_tommy_was_clicked(){   
    tomtom.gotoAndPlay(5);
}

function button_from_jerry_was_clicked(){   
    jerjer.gotoAndPlay(5);
}

</script>

</head>
<body onload="init();" style="background-color:#D4D4D4;margin:0px;">
    <canvas id="canvas_tommy" width="970" height="90" style="background-color:#727272"></canvas>
    <canvas id="canvas_jerry" width="970" height="90" style="background-color:#727272"></canvas>
</body>
</html>
于 2016-05-03T13:23:49.223 に答える
1

「canvas_ship」は実際のキャンバス要素の ID のようです。あなたがしようとしているのは、追加するコンテンツを制御することだと思います。

その場合、その API を持つ MovieClip インスタンスである をgotoAndPlay呼び出すことができます。exportRoot

exportRoot.gotoAndPlay(5);

ただし、canvas_ship ステージとコンテンツを作成すると、変数が上書きされるという問題があります。2 番目のキャンバス、exportRoot、およびステージの名前を変更することをお勧めします。

両方の要素を 1 つのキャンバスに追加することもできます。2 つの FLA からエクスポートされたコンテンツを使用した以外に、2 つのキャンバスを使用している理由はありますか?

var stage = new createjs.Stage("canvas_ship");
var ship = new libs_ship.ship();
var car = new libs_car.car();
stage.addChild(ship, car);
createjs.Ticker.addEventListener("tick", stage);

あなたのTell_Canvas_Ship_to_gotoAndPlay5メソッドはどこから呼び出されていますか? Animate/Flash のフレームスクリプトですか?

于 2016-04-27T17:15:06.087 に答える