This topic is related to AS2.0 .
最近我发现一个非常奇怪的返回值丢失的问题,情况是这样的:
我有一个类A,它继承自MovieClip,并在构造函数中调用了stop()方法。一切看起来都很正常,但是任何创建A的实例的方法的返回值都会丢失。
代码是这样的:
在A.as文件内:
class A extends MovieClip{
function A(){
stop();
}
}function strangeMethod(){
_root.attachMovie("testa","test",_root.getNextHighestDepth());
var x=_root.test;
return 1;
}
var a=0;
a=strangeMethod();
trace(a);var a=strangeMethod();
trace(a);当我最初发现这个问题的时候,那个类并非是像上面的那个例子那么简单,所以我花了一些时间才找出问题的源头在哪。发生问题的原因就是"stop()"方法。当我把"stop()"改成"this.stop()"的时候,问题就消失了。
我估计当调用stop的时候,起作用的并非是MovieClip类的stop方法,而很可能是时间轴上使用的那个stop,而且这两个方法的行为很可能有较大差异。除了停止播放头之外,stop方法可能还做了一些别的操作,干扰了返回值的传递。
所以我的建议是在类中只使用this.stop()来控制。我没有试过gotoAndStop和gotoAndPlay,但我想它们可能有有类似的机制,所以在类中调用应该加上this才行。
评论
博主啊!你是否发现
博主啊!你是否发现你的博客搬家的google blogger根本就是不能登陆成功!IE和火狐都是一样!所以更谈不上什么搬家了。。。
以前是可以的 我刚才
以前是可以的
我刚才测试确实不行,然后用工具检测了一下发现可能是身份验证过程中间有个环节被gfw截断了。
不知道url中哪个部分又被列为关键词了。。。
等我找到是哪个关键词惹了gfw之后应该可以修复
请教
您好,我是一名物理教师,我现在正在学习ape物理引擎,希望能够利用这个模拟一些比较复杂的物理过程,但发现网上关于ape的资料很少,例子也不多,但还是很幸运的发现了您的站点,希望能与您交流、学习下。我的qq号码是:503067274。期待您的回复。