【发布时间】:2016-05-26 08:18:34
【问题描述】:
我创建了 HTML5-canvas 并添加了类似电影 (Movie1) 的矩形 然后我为 Movie1 创建了 Animate 但是当我尝试停止 Animate 时,我不知道 JS 是如何工作的。
AS3 动作:Frame1
trace (this.Movie1);
this.Movie1.gotoAndStop(1);
我需要如何在 JS 上编写它?
我检查了不同的方法,但它们都不起作用。
this.Movie1.gotoAndStop(1);
Movie1.gotoAndStop(1);
我打开控制台 IE 看到了
SCRIPT5007:无法获取未定义或空引用的属性“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 ???
}
所以,我只有在函数 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);
}
【问题讨论】:
标签: html5-canvas adobe