這看起來不錯。在AS3中有幾種方法不再可用(主要是爲了更好)。我會在下面解釋。
duplicateMovieClip
已在AS3中棄用。在AS3中沒有簡單的「重複」方法,但有是幾種方法來製作一個movieclip(mc)的多個副本。
4as,一個致力於flash編程的博客,給出了一些非常好的示例/教程來實現這些方法,但我最喜歡的(我相信最簡單的)是僅僅創建一個自定義的類將會多次使用(「重複」)。
首先轉到庫中的mc並右鍵單擊以顯示屬性選項。打開Symbol屬性窗口後,選中「Export for actionscript」框並記住「Class」文本框中的文本。 * 如果在符號屬性窗口中看不到這些選項,請確保您的高級選項可見。
現在你已經創建了一個類爲您的三菱商事,在你的代碼,你可以很容易,只要你想通過寫作創造了MC的副本:
//this creates a new movieclip called mc that is a
//duplicate of the movieclip class you created.
//replace className with the text from the "Class"
//textbox in the symbol properties window
var mc:MovieClip = new className();
爲了把這個複製MC上階段,調用addChild()
或addChildAt()
方法:
//adds a movieclip to the stage
addChild(mc);
//adds a movieclip to the stage at a certain depth
addChildAt(mc,0);
_rotation
在AS3不再使用。而不使用下劃線使用rotation
。
//rotate movieclip by a certain amount
mc.rotation=180;
totalFrames
其實在技術上是AS3(_totalFrames
在AS2)。但是,您稱之爲不正確。而不是說mc.MovieClip.totalFrames
這是要求的movieclip幀內稱爲mc的movieclip的總幀數,你只需要說mc.totalFrames
。這要求在動畫片段mc內的幀總數,在這種情況下,這是我們想要的。
這裏是你的代碼重新寫在AS3服用這些變化考慮在內(並且以位修正爲忘記括號和奇怪的間距):
//create the invisible starting mc **Not actually necessary**
/*
var start_mc:MovieClip = new part();
addChild(start_mc).visible = false;
*/
//initialize i
var i:Number = 0;
//initialize total
var total:Number = 100;
//loop i to total
for(;i<total;i++){
//Create a new mc
var mc:MovieClip = new part();
//Add that mc to the stage and name it "mc" followed by the number "i"
addChildAt(mc,i).name="mc"+i;
//rotate mc random number of degrees 0-359
mc.rotation=(Math.floor(Math.random() * 360));
//gotoAndPlay (do you really mean play?) random frame
mc.gotoAndPlay(Math.floor(Math.random()*mc.totalFrames)+1);
}
您可能注意到,我沒有使用this["mc"+i]
在創建後更改動畫片段。在as3中,您可以通過您用來創建它的變量來引用新創建的動畫片段。在這種情況下,mc
。但是,如果您不信任此方法,或者稍後需要逐個更改每個mc,則可以使用getChildByName()
方法。
this.getChildByName("mc"+i).rotation=180;
我希望這有助於!
編輯:
Working example
我加入隨機縮放,使其更漂亮。
嘗試下載的.fla看到代碼和影片剪輯是如何構成的。
我很欣賞這一點,非常感謝你。我將再次來到這裏,事實上,這是我的家!不要厭倦了我 – Guyz
如果這對你有幫助,請務必點擊左邊的複選標記以接受答案。 – Enigmadan
Enigmadan,它確實幫了很大忙,謝謝。我的小問題雖然是顆粒/星星我打算不再生,發射和來自MC源符號飛,而是,這是我在MC裏補間的MC,向右移動作爲一個單一的對象。 我該如何糾正? – Guyz