注意flash4的函数可能引起的bug
来源:互联网 发布:淘宝网频现违规刀具 编辑:程序博客网 时间:2024/05/17 06:22
flash4的全局函数和类的成员函数是不同的两个函数。
比如MovieClip的stop...虽然stop();和this.stop();做的事情,产生的结果在大部分时候是一样的..但是,在一些不经意的地方,就会发生一些意想不到的事情...
比如在用基于prototype的方法,重写MovieClip的时间轴控制函数,来增加 检测mc的停放 状态时,就会出现意外,
andre的代码注释里面提到
just write this.method() instead of method() Old Flash4 methods are in global use and not affected by a prototype changing.
上面这个还是小问题,下面这个就是大问题了~~
在as2中,使用一个继承MovieClip的子类是很平常的事情,但如果在类中不加this的话,flash player会认为你使用的是flash4的全局函数,而这样的函数用在类初始的时候,就会发生意外
// MyMC.as
class MyMC extends MovieClip
{
static var symbol_linkage:String = "__Packages.MyMC";
static var symbol_owner:Function = MyMC;
static var symbol_registerd:Boolean = Object.registerClass(symbol_linkage,symbol_owner);
public function MyMC ()
{
stop();
//this.stop();
}
}
// MyClass.as
import MyMC;
class MyClass
{
private var mymc:MyMC;
public function MyClass(root:MovieClip) {
mymc = MyMC( root.attachMovie("MyMC","mymc", 0) );
}
}
// test.fla - frame 1
var myclass:MyClass = new MyClass(this);
trace(myclass); // output undefined
(其中MyMC使用了的技巧,查看这里
也可以用传统的方法来测试,在libray中建立一个MovieClip Symbol,然后把linkage id和AS2.0 Class设置为MyMC)
你会发现myclass竟然是undefined...而把MyMC构造函数中的stop();换成this.stop();就没有问题了...
这就是flash4函数带来的意外,并且在as2的类中,应尽量避免使用flash4函数的名称,来命名类的成员.这样也可能使类成员工作不正常...
flash4的函数可以查看
C:/Documents and Settings/<user name>/Local Settings/Application Data/Macromedia/Flash 8/<language>/Configuration/Classes/toplevel.as
比如MovieClip的stop...虽然stop();和this.stop();做的事情,产生的结果在大部分时候是一样的..但是,在一些不经意的地方,就会发生一些意想不到的事情...
比如在用基于prototype的方法,重写MovieClip的时间轴控制函数,来增加 检测mc的停放 状态时,就会出现意外,
andre的代码注释里面提到
just write this.method() instead of method() Old Flash4 methods are in global use and not affected by a prototype changing.
上面这个还是小问题,下面这个就是大问题了~~
在as2中,使用一个继承MovieClip的子类是很平常的事情,但如果在类中不加this的话,flash player会认为你使用的是flash4的全局函数,而这样的函数用在类初始的时候,就会发生意外
// MyMC.as
class MyMC extends MovieClip
{
static var symbol_linkage:String = "__Packages.MyMC";
static var symbol_owner:Function = MyMC;
static var symbol_registerd:Boolean = Object.registerClass(symbol_linkage,symbol_owner);
public function MyMC ()
{
stop();
//this.stop();
}
}
// MyClass.as
import MyMC;
class MyClass
{
private var mymc:MyMC;
public function MyClass(root:MovieClip) {
mymc = MyMC( root.attachMovie("MyMC","mymc", 0) );
}
}
// test.fla - frame 1
var myclass:MyClass = new MyClass(this);
trace(myclass); // output undefined
(其中MyMC使用了的技巧,查看这里
也可以用传统的方法来测试,在libray中建立一个MovieClip Symbol,然后把linkage id和AS2.0 Class设置为MyMC)
你会发现myclass竟然是undefined...而把MyMC构造函数中的stop();换成this.stop();就没有问题了...
这就是flash4函数带来的意外,并且在as2的类中,应尽量避免使用flash4函数的名称,来命名类的成员.这样也可能使类成员工作不正常...
flash4的函数可以查看
C:/Documents and Settings/<user name>/Local Settings/Application Data/Macromedia/Flash 8/<language>/Configuration/Classes/toplevel.as
- 注意flash4的函数可能引起的bug
- 一个由sscanf函数引起的bug
- C/C++超级需要注意的容易引起的Bug
- unsigned引起的bug
- typedef引起的bug
- red5可能引起的后果。
- 引起ERROR500的可能原因
- 编程经验:不同版本OpenCV之间并存可能引起的bug~
- 缺jar引起的bug
- memcpy引起的一个bug
- 字符串拷贝引起的bug
- 一个分号引起的bug
- Environment.CurrentDirectory引起的BUG
- 小问题引起的bug
- 一次memcpy引起的bug
- redis - 空格引起的bug
- 字段定义引起的bug
- 一个BUG引起的思考
- 珍惜朋友
- 初识设计模式
- 博客价值评估
- 失去了一位朋友
- 面试中可能用到的英语
- 注意flash4的函数可能引起的bug
- EJB学习笔记(RMI)
- Mysql的启动问题
- 这个世界是那么大(裴多菲)
- 关于《14名本科生独立设计探空火箭发射成功》的感想
- 爷爷生日
- oracle trunc()函数的用法
- UltraEdit的JAVA编译运行环境配置方法
- 我也有不满意的