0

我使用的ide是flash cs3。as2 swf 包含一个使用 mx 转换的补间代码。当我删除此补间代码并将其硬编码在 enterframe 上时,似乎没有问题。afaik avm2 应该完全支持 as2 和 as1 代码。所以我无法理解为什么在 as2 swf 中编码一个简单的补间时会出现这种差异。我在 actionscript 论坛上发表了一篇文章,希望能对这个问题有所了解。用一个非常简单的附件说明问题 http://www.actionscript.org/forums/showthread.php3?t=229901 ps 2 swf 不相互交互。as2文件中的代码

//~~~~~~~~~~~~~~~~~~~~~~~ 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;
};
*/
4

2 回答 2

0

我认为您_x在使用 AS3Tween类时不能使用。您的 Actionscript-2 swf 将被视为AVM1Movie对象(的后代DisplayObject)。而在 ActionScript-3 中,DisplayObject没有 property _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.

于 2010-02-05T07:38:37.040 回答
0

关于这个问题,我遇到的唯一令人信服的答案是

http://www.actionscript.org/forums/showpost.php3?p=968206&postcount=9

根据情况,重新编码故障代码位可能更容易。

于 2011-02-24T18:35:03.583 回答