MovieClip的onLoad和onData bug以及变态修正方法
代码如下:
var pages = this.mc.createEmptyMovieClip("pages",0);
pages.onLoad = function(){
trace(this._width);
}
pages.onEnterFrame = function(){
trace(111);
}
pages.onData = function(){
trace(this._width);
}
trace(pages.onLoad);
trace(pages.onData);输出后都是undefined
也就是说都没有被调用这个处理方法,但是用onClipEvent(data){}是可以trace的,也就是说问题已经解决了。
可是问题又来了,如果在类里我们怎么办呢,就只能用MovieClip.onData了。但是又不能调用,和jiagao讨论了一下,他也遇到了相同的问题。
想了一下,琢磨了一个简单的变态方法。方法如下:
var pages = this.mc.createEmptyMovieClip("pages",0);
pages._x = 2;
pages.onLoad = function(){
trace(this._width);
}
pages.onEnterFrame = function(){
if(this.onLoad!=undefined&&this.onData!=undefined){
trace(pages.onLoad);
trace(pages.onData);
delete this.onEnterFrame;
}
trace(111);
}
pages.onData = function(){
trace(this._width);
}