如何在 Adobe Animate CC 动画之间进行通信 'externally'?
How to communicate 'externally' between Adobe Animate CC animations?
通过 html 页面中的脚本,我试图控制我创建的 Adobe Animate CC 动画中发生的事情。例如,在这里您会看到一个不起作用的脚本,该脚本试图将船舶动画告知 gotoAndPlay(5)。无论如何,船舶动画对此没有反应。我猜这是因为我 addressing/naming 不正确。帮我谈谈我的动画。请参阅下面的代码。
<!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>
看起来 "canvas_ship" 是您的实际 canvas 元素的 ID。我认为你想做的是控制你添加的内容。
如果是这样,您可以在 exportRoot
上调用 gotoAndPlay
,它是具有 API.
的 MovieClip 实例
exportRoot.gotoAndPlay(5);
您将遇到的问题是,一旦您创建了 canvas_ship 舞台和内容,您就会覆盖变量。我建议更改第二个 canvas、exportRoot 和阶段的名称。
您也可以将两个元素合二为一 canvas。除了使用从 2 个 FLA 导出的内容之外,您使用两个 canvas 是否有任何原因?
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中的框架脚本吗?
我得到了帮助,现在分享答案。不客气。找个时间请我吃早餐吧。
在 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>
通过 html 页面中的脚本,我试图控制我创建的 Adobe Animate CC 动画中发生的事情。例如,在这里您会看到一个不起作用的脚本,该脚本试图将船舶动画告知 gotoAndPlay(5)。无论如何,船舶动画对此没有反应。我猜这是因为我 addressing/naming 不正确。帮我谈谈我的动画。请参阅下面的代码。
<!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>
看起来 "canvas_ship" 是您的实际 canvas 元素的 ID。我认为你想做的是控制你添加的内容。
如果是这样,您可以在 exportRoot
上调用 gotoAndPlay
,它是具有 API.
exportRoot.gotoAndPlay(5);
您将遇到的问题是,一旦您创建了 canvas_ship 舞台和内容,您就会覆盖变量。我建议更改第二个 canvas、exportRoot 和阶段的名称。
您也可以将两个元素合二为一 canvas。除了使用从 2 个 FLA 导出的内容之外,您使用两个 canvas 是否有任何原因?
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中的框架脚本吗?
我得到了帮助,现在分享答案。不客气。找个时间请我吃早餐吧。
在 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>