作者jeaby (hello, ActionScript)
看板Flash
標題Re: [問題] 如何在物件內控制舞台的元件?
時間Sun Nov 25 02:56:48 2012
※ 引述《woodymonkey (小罐的吃太快)》之銘言:
: 我在舞台上放了一些圖、文字 (沒有轉換成元件),
: 例如放了一個textfield,在屬性那裡命名為 TextA。
: 然後建立一個 A class。
: public class A {
: public function A() {
: // constructor
: }
: public function hideText():void {
: TextA.visible = false;
: }
: }
: 我把程式碼寫在時間軸上:
: var objA:A = new A();
: objA.hideText();
: 但是執行後卻顯示:存取未定義的屬性…
: 我想問說如何在物件裡控制主舞台上的"東西",
: 將 TextA 轉換為元件也是一樣的結果…
: parent 或 root 也試不出正確的用法…
: 請問該如何解決呢?
: 謝謝。
首先要先懂什麼是 Document Class
看圖說故事
http://goo.gl/8t7kM
取得場景元件的方式為:
public class A
{
/*
這邊一定要用 public 來修飾,private, protected 都會出錯
物件名稱就跟你在場景的物件名稱一樣
這樣就可以直接使用了
*/
public var TextA:TextField;
public function A()
{
// 假設要在第10格讓TextA隱藏
addFrameScript(9, hideText);
}
public function hideText():void
{
TextA.visible = false;
}
}
而且你要在影格寫程式碼存取 TextA
就直接寫 TextA.visible = false;
就好拉~ 不用大費周章還要寫 Document Class
且也不推薦程式碼在影格和 Document Class 都有寫
會造成日後維護困難
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.232.7
1F:推 woodymonkey:謝謝說明!我本來是寫在影格裡,不過現在想要把它改寫 11/30 00:02
2F:→ woodymonkey:到class裡。希望改成在main class中再加入物件,然後 11/30 00:05
3F:→ woodymonkey:新加入的物件可以控制主舞台的元素。 11/30 00:07