2010-10-29 22 views
1

我試圖在flash中完成一個「圖像地圖」,點擊圖像中的不同區域,當你點擊它時,一個彈出窗口顯示關於被點擊的對象的更多信息。彈出窗口有一個關閉按鈕,可以關閉彈出窗口。什麼是在Flash AS3內建立一個彈出窗口的最佳方法

我最大的麻煩就是我現在有我的代碼的方式是當你點擊地圖上的一個區域時,它在飛行中創建一個彈出窗口,然後使用addChild(_myPopup)將它添加到顯示列表中。對於我來說,這種方法的問題在於Popup現在是我剛剛按下的按鈕的一個子對象,但這個對象組織對我來說並沒有什麼意義。我想讓彈出窗口不是按鈕的子窗口,而是直接放在它自己的圖層或舞臺的一個小孩身上。

建立這樣一個對象組織的好方法和代碼體系結構是什麼?我對AS3相當陌生,並且我已經構建了一些小應用程序,但我的知識是有限的。

感謝

UPDATE
確定看起來像裏面的按鈕,效果很好調用stage.addChild(myPopup)。這是好的做法嗎?

回答

0

假設你有一個看起來是這樣的一個層次:

 
stage 
    Main class 
    Image class 
     Button 

這是很好的做法,從來沒有在顯示列表向上調用,每個對象只處理與它的孩子。不過,活動是向上溝通的好方法。讓Button派發一個事件,最好是一個自定義事件,然後在主類中使用一個監聽器來處理該事件,然後處理在所有事情上創建一個彈出窗口。

+0

感謝grapefrukt。很高興知道在顯示列表中向上撥打電話是不好的做法。發送一個事件聽起來不錯:) – justinl 2010-10-29 08:09:06

0

一個經常遇到的做法來組織可視化應用的層是:

  • 階段
    • 主類,所有的孩子
    • 彈出容器
    • 提示容器
    • 鼠標光標容器(顯然不再需要,因爲玩家10支持自定義遊標)

因此,您始終在主類上方的彈出式容器中創建彈出窗口。如果你有工具提示,他們應該進入工具提示容器。這種方法可以確保彈出窗口在主應用程序上方始終可見,並且工具提示始終在所有內容中都可見。

相關問題