0
我需要一些幫助。在Flash中,我從組件面板設計了一個sinmple按鈕。我給它的實例名稱爲btn_one。我試圖做的是每次用戶點擊按鈕我想要按鈕將文本從發送到下一個。但是,你如何做到這一點?AS3按鈕在按下時改變文字
不幸的是,我對as3的知識有限。他們是很多as3按鈕的教程,但我還沒有找到任何關於這個。如果你們能向我展示一些代碼示例或者提供一些教程鏈接,我將非常感激。
感謝
我需要一些幫助。在Flash中,我從組件面板設計了一個sinmple按鈕。我給它的實例名稱爲btn_one。我試圖做的是每次用戶點擊按鈕我想要按鈕將文本從發送到下一個。但是,你如何做到這一點?AS3按鈕在按下時改變文字
不幸的是,我對as3的知識有限。他們是很多as3按鈕的教程,但我還沒有找到任何關於這個。如果你們能向我展示一些代碼示例或者提供一些教程鏈接,我將非常感激。
感謝
我試圖做一些事情SimpleButtons'文本字段,並用下面的代碼上來。希望它會有所幫助。
public class GenericTextButton extends flash.display.SimpleButton {
public var buttonText:String;
private var tfs:Vector.<TextField>;
public function GenericTextButton():void
{
tfs=new Vector.<TextField>();
var tc:DisplayObjectContainer;
var i:int;
// now let's init embedded TFs
// trace((upState as DisplayObjectContainer).numChildren); // wow there's property available! YES
if (upState is DisplayObjectContainer) {
tc=(upState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
} // now same with overState and downState
if (overState is DisplayObjectContainer) {
tc=(overState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
}
if (downState is DisplayObjectContainer) {
tc=(downState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
}
// trace(name+' has '+tfs.length+' textfields'); // 3 !!!! Unbelieveable, but true
}
public function setText(the_text:String):void {
for (var i:int=0;i<tfs.length;i++) tfs[i].text=the_text; // and NOW we can do as simple as this
}
}
它能做什麼:你申報你的按鈕實例作爲GenericTextButton後代,而不是SimpleButton的,那麼你就必須提供setText()
方法立即改變該按鈕,無論你提供的所有文本。它枚舉SimpleButton的內部結構,抓取任何TextField,並將其存儲在Vector中以便於參考。
如果我的回答對您滿意,請點擊答案下方的「打勾」標記爲已接受,這有助於您和其他可能會遇到類似問題並會發現此問題的人。 – Vesper