2012-12-05 76 views
1

我製作了一個基本的Air/Flex應用程序,它具有主視圖和第二視圖,並附加了mxml事件以激活和禁用每個事件。從主視圖中,有一個按鈕可以推動第二個視圖。如果我暫停並從主視圖重新打開該應用程序,則停用和激活事件每次觸發一次。然後,如果我轉到第二個視圖並執行相同的操作,則主視圖中的激活/停用事件將與第二個視圖中的事件一起激活。當我回到主頁視圖並重複測試時,3組激活/關閉事件觸發(2位來自家中,1位來自第2位)並繼續進行。爲什麼會發生這種情況,我該如何預防?我在這裏做錯了什麼?查看事件在導航視圖後多次觸發

我已經在Air 2.3-3.5上的Android 2.3設備和桌面測試儀上測試過了。

回答

0

看來你以某種方式使用Event.ACTIVATE事件,而不是FlexEvent.VIEW_ACTIVATE

當你的應用程序的收益從OS注重激勵事件被分派。它是一個廣播事件 - 每個eventdispatcher都會觸發它。所以,你所有的觀點都會派發它。

視圖被回收,因此,當您第二次打開主視圖時,似乎有一個新副本,您實際在屏幕上看到並且舊副本正在等待屏幕外的垃圾回收,仍然收到事件。所以,這就是爲什麼你有兩個從主視圖的事件。

有關視圖生命週期的更多詳細信息,您可以閱讀http://corlan.org/2011/01/12/understanding-flex-mobile-views-and-viewnavigator/