2013-08-19 72 views
-1

我正在使用我的AS3,並且卡住了。這段代碼在我的AS2文件中。你如何將此代碼轉換爲AS3?當我設置爲AS3和發佈,顯示該錯誤消息:如何將此AS2代碼轉換爲AS3

場景1,層「1層」,第1幀,第6行
1046:類型未找到或不是編譯時間常數:顏色。

請幫助.... :(

i=0; 
function cogalt() { 
i++; 
mc.duplicateMovieClip("mc"+i, i); 
// 
var my_color:Color = new Color(_root["mc"+i]); 
_root["mc"+i].renk1=random(255); 
_root["mc"+i].renk2=random(255); 
_root["mc"+i].renk3=random(255); 
my_color.setRGB(_root["mc"+i].renk1<<16 | _root["mc"+i].renk2<<8 | _root["mc"+i].renk3); 
// 
_root["mc"+i]._x = tiklax; 
_root["mc"+i]._y = tiklay; 
// 
_root["mc"+i].deger2 = random(2); 
// 
_root["mc"+i].ziplama = 1+random(10); 
_root["mc"+i]._width = _root["mc"+i]._height = 1+random(10); 
// 
if (_root["mc"+i].deger2 == 0) { 
    _root["mc"+i].degerx = -(1+random(4)); 
} else { 
    _root["mc"+i].degerx = +(1+random(4)); 
} 
_root["mc"+i].onEnterFrame = function() { 
    this.ziplama -=1; 
    this._y-= this.ziplama; 
    this._x += this.degerx; 
    this._alpha -= 4; 
    if (this._alpha<0) { 
     delete this.onEnterFrame; 
     removeMovieClip(this); 
    } 
}; 
     } 
     mc.startDrag(true); 

回答

0

1. 下面是關於AS2動態地設置MovieClip的顏色,以AS3鏈接: http://evolve.reintroducing.com/2008/02/26/as2-to-as3/as2-%E2%86%92-as3-setting-a-movieclips-color/

2. 你也碰到另一個問題,在as3中沒有duplicateMovieClip()

你將不得不創建一個MovieClip的子類和li將它複製到要複製的圖形上。當你創建這個子類時,不要忘記選擇「Export for Actionscript」。

那麼你將有

var mc:MovieClip = new SubclassOfMovieClip() 
addChild(mc) 

然後你就可能要每一個實例保存到一個數組/矢量,這樣可以保持到對象的引用。

3. 添加監聽器在AS3從這個

mc.onEnterFrame=function(){} 

去你談論這個

mc.addEventListener(Event.ENTER_FRAME,onEnterFrame) 

function onEnterFrame(evt:Event){} 
+0

什麼庫?你也不能只是選擇'fl.motion.Color'作爲替代品而不做進一步的修改,它的構造函數期望完全不同於AS2'Color'類的值,也沒有'setRGB()'方法。 – ndm

+0

然後這應該會對您有所幫助:「AS2→AS3:動態設置MovieClip的顏色」http://evolve.reintroducing.com/2008/02/26/as2-to-as3/as2-%E2%86%92-as3 -setting-a-movieclips-color/ – moKS

+0

我知道,但你應該把它放在你的答案中。 – ndm