2013-07-03 2 views
0

Это уже меня беспокоило.Как вы обрабатываете этап Event.RESIZE в приложении ActionScript3?

При использовании стадии изменения размера, вы могли бы сказать что-то вроде этого:

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; 
    } 

} 

Что если нужно Main также изменить размер? У меня много систем, которые реагируют на событие изменения размера, и я не знаю, должен ли я просто добавлять слушатель сцены Event.RESIZE на каждый экран или если это нужно контролировать из одного места.

Например, добавьте this.main.resize() в прослушиватель onResize, а затем реализуйте интерфейс IResizable на моих экранах, например?

Что такое лучшая практика?

EDIT: Или изменить размер быть частью чего-то более общего, как Invalidate()

+1

В зависимости от размера приложения и количества вещей в масштабе у вас есть несколько вариантов, также в зависимости от того, что вы хотите. Вы хотите откликнуться, а затем добавить слушателя изменения размера для всех вещей, которые вы хотите изменить и/или изменить. Если вы просто хотите масштабировать все, лучше просто создать контейнер и установить scaleX и scaleY для контейнера movieclip – Marijn

+0

Спасибо Marijn. (Я не масштабирую). Как вы можете видеть, я бы тоже взял этот маршрут, но я слышал, что несколько слушателей работают медленно. См. Пирс. – user1059939

ответ

1

Для выполнения это лучше иметь только один Event.RESIZE слушателя в классе документа. Затем распространите событие на все ваши подкласс и детей с функциями или даже лучше с замечательным Signals framework Робертом Пеннером.

Если вам нужно масштабировать свой класс документов, самый простой способ - разместить весь свой контент внутри Sprite и масштабировать его.

Смежные вопросы