2016-12-04 47 views
-1

我正在使用Actionscript-3(Adobe Flash CS6)中的交互式地圖。如何使用一個按鈕製作可見的無限動畫片段?

我想要做的是,用一個按鈕,顯示多個對象(動畫片段),每次點擊鼠標。

我目前使用此代碼的工作,但我不能設法找出如何顯示多個影片剪輯,我只能說明一:

btn_ally_unit.addEventListener(MouseEvent.CLICK, mostrar_ally_unit2); 

function mostrar_ally_unit2(event:MouseEvent):void 
{ 
    map_editor.ally_unit.visible = true; 

} 

如何擴展這適用於任何動畫片段的數量?

+2

這些_「無限!」_對象的數量存儲在哪裏?在一個數組或什麼?! – someOne

+0

它只是一個存儲在...庫中的動畫片段? 隨着代碼發佈之前,我只能設法使可見的一個圖像(一個movieclip)。 我想每次點擊按鈕時創建(或顯示)一個圖像(動畫片段)。 順便說一句,謝謝你的回答 – Dreis

+0

你試着克隆那個單獨的'ally_unit'嗎?那是你要的嗎 ? –

回答

0

我確定無限你的意思是無限期的。

以使用Event類的target屬性單擊的單位爲目標。看起來像這樣:

btn_ally_unit.addEventListener(MouseEvent.CLICK, mostrar_ally_unit2); 

function mostrar_ally_unit2(event:MouseEvent):void 
{ 
    event.target.visible = true; 

} 

你看? (event:MouseEvent)是說這個函數需要一個參數(一個MouseEvent),你給變量名稱event。這是一個慣例,但我喜歡使用me作爲鼠標事件的縮寫。其他人只是使用字母e。好。現在event有一個屬性,target,這是接收事件的事情。在這種情況下,它將是你的單位之一。你的單位擁有visible的屬性,你可以像你一樣做的切換,但通過使用相對的鼠標事件目標,你可以對所有單位使用同一行代碼。

當然,你必須將事件偵聽器添加到每個單位。您可以將其作爲類的一部分,或者在實例化新單元時添加它。

使用ActionScript 3的事件流可能會非常棘手。找到一個關於這個的教程。這裏是一個與來自Adobe的事件流相關的link

+0

我的第二個筆記說「使用事件流可能會非常棘手」。不要誤解這一點。當您使用事件時,您正在使用事件流的默認模式。人們不能選擇使用或不使用流量。所以我的意思是,事件流程與as3一樣,並不總是直觀,但比以前的AS版本更通用,更強大。通常情況下,默認值工作得很好。所以試試我的建議,看看它是否有效。如果不是,可能是因爲event.target可能首先是舞臺!讓我知道我發佈的鏈接是否無助於解決該問題。 –

相關問題