2011-10-27 97 views
0

我有一小段代碼可以從朋友處獲得,但是我無法將其轉化爲工作的AS3.0。無論我改變什麼,我總是收到編譯器錯誤。 這是最初的一段代碼,我真的很感謝你看看它。將腳本代碼從Actionscript 2轉換爲Actionscript 3

laser_nodes = 2; 
for (var x=1; x<=laser_nodes; x++) { 
    node = _root.attachMovie("laser", "laser_"+x, x, {_x:Math.random()*460+20, _y:Math.random()*310+20}); 
    node.onPress = function() { 
     startDrag(this); 
    }; 
    node.onRelease = function() { 
     stopDrag(); 
    }; 
} 

_root.createEmptyMovieClip("ray", _root.getNextHighestDepth()); 

ray.onEnterFrame = function() { 
    this.clear(); 
    this.lineStyle(3, 0xff0000); 
    this.moveTo(_root.laser_1._x, _root.laser_1._y); 
    for (x=2; x<=laser_nodes; x++) { 
     this.lineTo(_root["laser_"+x]._x, _root["laser_"+x]._y); 
    } 
    this.lineTo(_root.laser_1._x, _root.laser_1._y); 
}; 
+0

如果您發佈了特定的編譯器錯誤,它會有所幫助。 – sean

+0

如果您發佈迄今爲止創建的ActionScript 3代碼,它也會有所幫助。 –

回答

2

這裏有很多問題。有些是語法的,有些則需要新的方法。

例如:

  • _root在AS3中不存在。在AS3就變成:MovieClip(root)

  • attachMovie是不是在AS3中,你將有一個構造函數調用來取代它像var node = new laser(); ...

  • onPressonRelease回調AS3中不支持。你需要考慮使用addEventListener w/MouseEvent類。同樣與onEnterFrameEvent.ENTER_FRAME

  • createEmptyMovieClip()變得new MovieClip();

  • AS3中的圖形繪製命令現在嵌套在精靈的graphics對象。

好像你需要深入挖掘AS3這一點。這不是一個非常直接的代碼轉換。

相關問題