加载到AS3 swf中的AS2 swf中断的奇怪行为可以解释为什么这是什么?
我使用的是flash cs3。 as2 swf包含使用mx转换的补间代码。 当我删除这个补间代码,并在enterframe上硬编码它似乎没有问题。 afaik avm2应完全支持as2和as1代码。所以我无法理解为什么在as2 swf中编写一个简单的补间时这种差异。 我曾在动作论坛发表过一篇文章,希望对这个问题有所了解。用非常简单的附件说明问题 http://www.actionscript.org/forums/showthread.php3?t=229901 p.s 2 swf不会相互影响。 在AS2文件中的代码加载到AS3 swf中的AS2 swf中断的奇怪行为可以解释为什么这是什么?
//~~~~~~~~~~~~~~~~~~~~~~~ with tween class
import mx.transitions.*;
import mx.transitions.easing.*;
function tweenMe(mc, target) {
myTween = new Tween(mc, "_x", Regular.easeOut, mc._x, target, 2, true);
}
tweenMe(mc, 700);
//~~~~~~~~~~~~~~~~~~~~~~~ Simple Hard coded control
/*this.onEnterFrame = function() {
mc._x += (700-mc._x)/10;
};
*/
唯一令人信服的答案我曾经碰到过关于这个问题是这样的
http://www.actionscript.org/forums/showpost.php3?p=968206&postcount=9
根据情况可能是更容易重新编码故障码位。
我不认为你可以同时使用AS3 Tween
类使用_x
。您的Actionscript-2 swf将被视为AVM1Movie
对象(DisplayObject
的后代)。而在ActionScript-3中,DisplayObject
没有属性_x
。因此,尝试使用:
function tweenMe(mc, target) {
myTween = new Tween(mc, "x", Regular.easeOut, mc.x, target, 2, true);
}
tweenMe(mc, 700);
ActionScript的3文档这样说:
The AVM1Movie object can use methods and properties inherited from the DisplayObject class (such as x, y, width, and so on). However, no interoperability (such as calling methods or using parameters) between the AVM1Movie object and AVM2 objects is allowed.
我发布的代码是在as2文件中完成的。我知道如何在as3中使用补间类,这与我的问题无关。如果你看看我使用mx.transitions的AS2代码,也不会导入as3。代码独立于加载器swf工作。它第一次运行,但没有这样做,我第二次加载它。 – 2010-02-05 07:50:11
我有我提供的链接中附加的示例文件。它的工作文件。 as3和as2。当我们将as2文件中的代码类型更改为补间时。那么它不起作用。 – 2010-02-05 10:06:05
即时通讯基本上试图找出为什么某些as2编码瑞士法郎不加载到as3瑞士法郎时正常运行。这类问题大多数是由于引用了as2和as3 swf的阶段和根本冲突引起的。但是在这两个文件中没有这样的参考。 – 2010-02-05 10:06:53