将传统的as1 / 2代码转换为as3

时间:2011-07-15 09:13:06

标签: flash actionscript-3 actionscript-2

我有一个.swf,我已经在互联网上下载它是一个动画,我非常想在我的.swf中,但是,当我加载它并试图控制.swf我得到一个错误码。 TypeError:错误#1034:类型强制失败:无法将flash.display :: AVM1Movie @ 10d52701转换为flash.display.MovieClip。

我在网上搜索了这个错误,这是因为.swf是在as1 / 2中编译的,因此我无法得到它的“对象”并控制它。

我也反编译了.swf并读取了代码,但代码主要在as1 / 2中完成,我不知道它的作用,因为我刚刚开始学习as3,并且从未接触过as1 / 2。< / p>

任何人都知道我该怎么办?下面是反编译的代码,据我所知,它用于“移动”动画的各个部分。这是一个“鱼”身体的一部分,创造一个非常光滑,游泳的动作。我已经尝试将其转换为as3代码,但我发现错误,它无法找到变量。

function corps(objet)
{
    i = 0;
    for (;;) 
    {
        if (i >= 8) 
        {
            return;
        }
        tourne = Math.cos(i + getTimer() / (400 - m)) * 9;
        objet["p" + i]._rotation = (0 - tourne) / 2;
        objet.p5["p" + i]._rotation = 0 - tourne;
        objet.p5.p4["p" + i]._rotation = 0 - tourne;
        objet.p5.p4.p3["p" + i]._rotation = 0 - tourne;
        objet.p5.p4.p3.p2["p" + i]._rotation = 0 - tourne;
        objet.p5.p4.p3.p2.p1["p" + i]._rotation = (0 - tourne) / 2;
        ++i;
    }
}
function fish(objeti)
{
    if (objeti._x && objeti._y) 
    {
        corps(objeti);
    }
}
var j = Math.random(20) * 7 - 5;
var m = Math.random(50) * 2;
j = 4;
m = 4;
k = 0;
u = 0;
v = 1;
this.poisson.s = 1;
this.poisson.vari = this.poisson._width / 10 + this.poisson._height / 10;
this.onEnterFrame = function ()
{
    fish(this.poisson);
}
;

2 个答案:

答案 0 :(得分:0)

您需要将以_开头的所有属性更改为相应的AS3属性。即_width应为width_rotation应为rotation,为_width, _height, _x, _y, _rotation执行此操作。

答案 1 :(得分:0)

看起来您需要将poisson的实例放置在舞台上并命名。它在图书馆吗?请务必将实例命名为poisson