2013-07-03 22 views
0

這一直困擾着我。如何在Actionscript3應用程序中處理舞臺Event.RESIZE?

在使用階段調整大小,你可以說這樣的事情:

public class Preload extends MovieClip 
{ 
    protected var main:Main; 

    public function preloader() 
    { 

      this.main = new Main(); 
      this.addChild(this.main); 

      stage.addEventListener(Event.RESIZE, this.onResize); 
    } 

    protected function onResize(e:Event): void 
    { 
      this.main.x = stage.stageWidth>>1; 
      this.main.y = stage.stageHeight>>1; 
    } 

} 

那麼如果主要需要調整也?我有很多響應調整大小事件的系統,我不知道是否應該簡單地向每個屏幕添加舞臺Event.RESIZE監聽器,或者是否應該從單個位置控制這個監聽器。

例如,將this.main.resize()添加到上面的onResize監聽器,然後在我的屏幕上實現一個IResizable接口,例如?

什麼是最佳實踐?

編輯:還是應該調整是更多的東西通用的,像無效()

+1

根據應用程序的大小以及需要擴展的事物數量,您可以有多種選擇,這取決於您的需要。 你想要響應,然後爲所有想要調整大小和/或重新定位的東西添加調整大小監聽器。如果你只是想縮放所有的東西,你最好創建一個容器併爲容器動畫片段設置scaleX和scaleY – Marijn

+0

謝謝Marijn。 (我不縮放)。正如你所看到的,我也將採取這種方式,但是我聽說多個聽衆很慢。見碼頭。 – user1059939

回答

1

出於性能最好是隻有1 Event.RESIZE在你的文檔類監聽器的一部分。然後將活動傳播給所有你的子班和有功能的孩子,或者更好的是羅伯​​特潘納的精彩Signals framework

如果您需要縮放文檔類,最簡單的方法是將所有內容放在Sprite之內,然後進行縮放。

相關問題