2013-02-18 40 views
0

我希望這些增長的圈子影片剪輯可以在一段時間內隨機啓動,然後不會再重複,直到整個電影循環播放。那有意義嗎?附加是一個fla和swf來展示我想要的東西,除了當然,他們還沒有隨機開始。移動剪輯的隨機開始時間

  • 動畫應該是時間長了一套量
  • 動畫應該重複,但隨機啓動次,每次MC
  • 所有MC動畫前應再次發揮
  • 循環沒有MC要玩到10幀在

FLA https://mega.co.nz/#!8Nwi0KzZ!QlutQQVo-KoPyNaGta9-7GLsYFthI0lMSAqTqtIIiDY

瑞士法郎 https://mega.co.nz/#!4cRFjZ5A!H0ndXA2DfFh79wJGua2Tgk9SquZ1rpEzZE3RCPwYfW4

任何幫助將是可愛的!

感謝, 羅林

回答

3

你必須要在第1幀停止循環影片剪輯,然後播放基於使用內置的功能setTimeout的一個隨機數。

function GenerateRandomNumber(max:Number, min:Number = 0):Number 
{ 
    return Math.random() * (max - min) + min; 
} 

可以使用參數最大限定在設定的時間量和最小像這樣:

您可以使用此功能產生一個隨機數

GenerateRandomNumber(4,1); 

這會給你隨機時間在1到4秒之間。您可以根據需要更改這些值。

如果需要,您最好在圈影片剪輯的父級中定義此函數,以便在其他位置重用它。

然後,在圓圈影片剪輯的最後一幀停止它,您需要檢查是否所有圓圈影片剪輯都停止或不重播動畫。您可以通過將所有已完成影片剪輯的總數增加一個計數器來實現此目的。

爲此,可以使用在圓影片剪輯的父定義的函數來跟蹤所有的人都像這樣做:

var CircleMcsPlayedCount:int = 0; 
var TotalCirclesCount:int = 12; 

function CircleMcFinishedPlayback() 
{ 
    CircleMcsPlayedCount++; 
    if(CircleMcsPlayedCount == TotalCirclesCount){ 
     CircleMcsPlayedCount = 0; 
     this.gotoAndPlay(1); 
    } 
} 

您可以使用此行代碼在最後一幀叫它圓影片剪輯:

MovieClip(parent).CircleMcFinishedPlayback(); 

在此功能中,當賬戶等於影片剪輯的總數量,你設定的次數再次零,並再次將播放頭移動到第一幀重新播放動畫。你可以把這個函數中的任何代碼放在你需要在所有的圓圈完成播放後執行的if語句中。

我已經修改了您上傳的文件並應用了所有更改,以防您想在自己嘗試之前查看該文件。

這裏的文件:

https://mega.co.nz/#!JxtFgTJK!LWpuFCXTYrkmMK_6tm_1cAp3MKpB1h33URufrr1Pkk4

我已經保存爲Flash CS4,因爲我不知道你的版本,我沒有舊版本。

+0

!!!爲什麼人們是如此驚人的Stockoverflow?我不知道?這是非常有用的。我將能夠修改它以適合我的需求。謝謝X 1000! – Rollin 2013-02-18 23:20:46

+0

很高興它爲你工作:) – 2013-02-18 23:33:33

+0

解決方案是好的。但是,爲什麼不把你的所有東西都編程化呢? – 2013-02-19 05:01:51