2017-03-03 158 views
2

我想製作一個帶有TextField的按鈕,如果您願意,可以使用AS3更改該按鈕。AS3:更改MovieClip中的TextField

我意識到我不能用SimpleButton來做到這一點,但通過使用MovieClip的時間軸並來回導航,我設法在按下鼠標點擊時更改按鈕的紋理。我確實在時間線的每一幀中的按鈕上創建了三個TextField,但我找不到永久更改TextField的方法。

BTN均是MovieClip,L 1是用於幀中的TextField 1.

btn.l1.text = "label" 

作品直到我觸摸按鈕(其改變MovieClip的幀在時間軸上),並且當其返回到第1幀,其標籤沒有任何回報。

我基本上需要知道的是;如何永久更改正在更改幀的MovieClip中的TextField?

回答

1

你的三個框架是不同還是相同?如果它們不同,請確保您正在更改每個按鈕的文本字段的文本,因爲不同的幀將具有全新的對象。

2

如果您的文本字段在其時間軸的圖層上只有1個關鍵幀,它將在您更改幀時保留文本值。但是任何關鍵幀都會重新創建文本字段,並在達到該幀時重置文本。如果您使用關鍵幀來更改文本顏色或過濾器,則可以將文本字段放入MovieClip中,並在MovieClip上使用帶有顏色色調的關鍵幀(只要每個關鍵幀對於MovieClip使用相同的實例名稱,它將會而不是被重新創建)。

btn.labelMC.textField.text = "label"; 

如果您使用關鍵幀來改變文字的字體或樣式(任何一個MovieClip無法做到),那麼唯一的辦法將是重置:所以你的東西,如更改文本一次在.text每一次當你改變了框架:

btn.gotoAndStop(2); 
btn.l1.text = "label"; 

可以使用可重複使用的類隔離這個問題。

+0

+1 @Aaron 避免多個關鍵幀(如果可能)併爲您的MC創建一個類。這將改變你的文字。 – tatactic