MacroViz

多媒體設計、數位學習、英語學習、日語學習

Flex 使用 parentApplication 的注意事項

當在專案中,運用的自訂元件越來越多層時,為了頁面的切換和導覽,有時候會需要存取上層,或同層之間的變數或物件,這個時候,Flex 的 Actionscript 3.0 提供了parentApplication作為一個解決方案。野部用一個通俗的概念來描述,parentApplication 可以視同為 flash 開發環境下的 _root,但是限制比較多,可以有下面幾種運用方式:

  1. parentApplication.componentID.objectID.property
  2. parentApplication.objectID. property
  3. parentApplication.varableName

但是當遇到兩層元件以上的時候,用下列語法會造成執行錯誤:

componentID.componetID.objectID.property

此外,parentApplication還有幾個需要注意的事項:

  1. 一定是從最上層也就是 <mx:Application> 那一層開始算起
  2. 引入自訂元件一定要下 ID,如 <local:myComp id="myComp">,這點有時候會被忽略。
  3. 如上所述,元件只能一層。
  4. parentApplication 之後的語法,Flex Builder 不會即時除錯,必須等到在瀏覽器中執行時才知道錯誤與否,因為超過運算範圍。

可是有時候為了導覽,不得不跨層存取,限制那麼多,又不能即時除錯,那該怎麼辦呢?

其實解決方法很簡單,就是在最上層,也就是<mx:Application>層,宣告一個 public 變數。之後任何一層,需要存取或者判斷時,直接用parentApplication.varableName 的方式來達成就行了。

P.S. 上述的componentID, objected, property, varableName 請代換成您自己的語法就行了。

野部

posted by 野部 聖広 in Actionscript 3.0,Adobe Flash,Adobe Flex and have No Comments

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment