2011-07-15 70 views
0

我有一個.swf,我在互聯網上下載它是一個動畫,我非常想將它放在我的.swf中,但是,當我加載並嘗試控制.swf我得到一個錯誤代碼。 TypeError:錯誤#1034:類型強制失敗:無法將flash.display :: AVM1Movie @ 10d52701轉換爲flash.display.MovieClip。將as1/2代碼轉換爲as3

我搜索了網絡的這個錯誤,這是因爲.swf編譯爲as1/2,因此我無法得到它的「對象」,並控制它。

我也反編譯了.swf並讀取了代碼,但代碼大部分是在as1/2中完成的,我不知道它的作用,因爲我剛開始學習as3,並且從未觸及過1/2。

任何人都有什麼想法我可以做什麼?下面是代碼反編譯,從我瞭解它是用來「移動」的動畫部分。這是一個「魚」的身體部分,以創建一個非常流暢的游泳動作。我曾嘗試將其轉換爲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); 
} 
; 
+0

反編譯代碼...您可以隨時聯繫原始(法語區)程序員:-) – 2011-07-15 10:16:42

+0

是的,我做了,但我認爲他的英語不是很好,我無法理解他輸入的內容。 – sutoL

+0

如果您能夠理解您是否可以反編譯並重用它? –

回答

0

您需要將所有以_開頭的屬性更改爲相應的AS3屬性。即_width應該是width_rotation應該是rotation,爲_width, _height, _x, _y, _rotation做這個。

+0

嗨,我做到了,但對於var信件我不知道它是如何到達那裏的,這段代碼位於文件的主要時間線上。 – sutoL

0

看起來您需要將poisson的實例放置在舞臺上並命名。它在圖書館嗎?一定要命名實例poisson