2012-09-26 122 views
0

如果我有一個擴展MovieClip的對象,例如讓我們說它是某種定製的文本字段類(InputField)。as3,使用參數在舞臺上實例化對象

InputField構造函數有2個參數(placeholderText:String = null,displayAsPassword:Boolean = false)。

如果我將影片剪輯拖放到舞臺上,它將被構造,但不會設置參數。有沒有辦法在施工時設置它們?

爲了清楚起見,我希望能夠將此影片剪輯拖放到舞臺上,而不是創建它並從後面的代碼中執行addChild()。

+0

您對構造(作者時間)和運行時間之間的差異感到困惑。標準方式中的代碼在作者期間不運行(將庫中的項目拖動到階段)。我建議你閱讀如何創建一個組件。 –

+0

更具體地看看作者時間組件框架 –

+0

@The_asMan:謝謝,但這不是問題。我對AS3很好,但對於flash pro界面不太好,我只是想知道是否有方法在界面中設置構造變量。下面的兩個答案是正確的 - 沒辦法做到這一點。 – Drahcir

回答

1

您可以初始化變量裏面的這個符號本身,然後在它放到舞臺上時立即設置它們。您還可以從.as文件訪問這些變量。

編輯:爲了延長上的評論,當你宣佈你已經設置了只需將它們設置爲任何值,則可以通過將默認喜歡班裏的兩個變量,例如:

class MyInputField 
{ 
    // Will always set following variables to default values, 
    // whether using addChild or dragging symbol onto stage. 
    var placeholderText:String = "Enter text here.."; 
    var displayAsPassword:Boolean = false; 

    // If needed, store text field via constructor 
    var tf:TextField; 

    // Constructor 
    function MyInputField() 
    { 
    } 
} 
+0

謝謝,請多多解釋一下。 「符號內」是什麼意思? – Drahcir

+0

拖動到舞臺的文本字段可作爲對象訪問。該文本字段是「符號」。所以,去它的屬性,並設置這些變量。 – Vesper

+0

@Vesper:是的,這就是我一直在做的事情。我想知道我是否可以設置構造參數。 – Drahcir

1

我不不知道這是不是一個好主意,但你可以創建一個擴展你的InputField的類。你可以改變超級函數中的構造函數參數。

public function CustomInputField() { 
    super("hello", true); 
} 

不過,我會去一個公共職能init(),具有相同的參數,你現在在構造函數中使用。

順便說一句你是在重新發明輪子嗎? Inputfield被創建了一千次。看看temple library,它有很好的可擴展組件和表單類。

+0

+1 - 感謝您將我指向寺廟庫,我的輸入字段類只有很短的(60行),但您說得對,也許重新發明了車輪。 – Drahcir

相關問題