我创建了HTML5-canvas并添加了像Movie(Movie1)这样的Rectangle 然后我为Movie1创建了Animate 但是,当我试图停止Animate时,我不知道JS是如何工作的。
AS3行动:第1帧
public struct CodePointIndex {
public int Index;
public bool Valid;
public bool IsSurrogatePair;
public static CodePointIndex Create(int index, bool valid, bool isSurrogatePair) {
return new CodePointIndex {
Index = index,
Valid = valid,
IsSurrogatePair = isSurrogatePair,
};
}
}
我需要如何在JS上编写它?
我检查方式不同,但所有方法都不起作用。
trace (this.Movie1);
this.Movie1.gotoAndStop(1);
我打开了控制台IE并看到了
SCRIPT5007:无法获得财产&gotoAndStop'未定义或空引用
我也写了第二个例子
this.Movie1.gotoAndStop(1);
Movie1.gotoAndStop(1);
所以,只有当我在最终的Function Init()中生成的HTML文件中插入代码时才决定这个任务。像这样的东西
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 ???
}
为什么代码无法在IDE中运行?
我尝试在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);
}
}
的第一帧上更改this
,但它部分有效
exportRoot
答案 0 :(得分:1)
我发现在第一帧中编写代码会导致与舞台上的动画片段(this.Movie1)取得联系的问题 - 但将代码放在第二帧中会有所帮助。我也发现,使用&#34;这个&#34;函数内部有时会产生通常的js-error:&#34;这个&#34;指的是功能,而不是你所在的对象&#34;内部&#34; (阶段)。通过变量&#34; var that = this;&#34;解决这个问题。并使用&#34;那&#34;而不是&#34;这个&#34;在功能里面。