MovieClip的onLoad和onData bug以及变态修正方法
类别: Flash教程
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的,也就是说问题已经解决了。pages.onLoad = function(){
trace(this._width);
}
pages.onEnterFrame = function(){
trace(111);
}
pages.onData = function(){
trace(this._width);
}
trace(pages.onLoad);
trace(pages.onData);输出后都是undefined
可是问题又来了,如果在类里我们怎么办呢,就只能用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);
}
这样就没问题了,如果你不嫌麻烦的话就写一个extends MovieClip也可以。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);
}
- 上一篇: Flash AS制作上升的水泡效果动画
- 下一篇: Flash制作切片式图片效果动画
-= 资 源 教 程 =-
文 章 搜 索