Класс панорамирования во Flash AS3

У меня есть мувиклип, и я собираюсь добавить к нему функцию панорамирования. Я хочу добавить кастрюлю как собственный класс, на который может ссылаться мувиклип.

Когда я создаю класс панорамы, я отправляю ему мувиклип, чтобы у меня всегда были свойства положения.

Каков наилучший способ получить доступ к сцене в классе панорамирования? Мне нужно будет иметь возможность получить stage mouseX, mouseY, stageWidth и stageHeight.

Прямо сейчас у меня есть класс pan, расширяющий объект sprite и фактически добавляющий его как дочерний элемент мувиклипа, который я хочу панорамировать.

Было бы лучше просто отправить саму сцену в класс панорамирования или есть лучший способ, чем этот?

1 ответ

Решение

Создайте одноэлементный класс, который управляет изменениями на этапе под названием StageManager и инициализировать его, передав ему ссылку на этап:

//StageManager.as

import flash.display.Stage;

public class StageManager()
{
    //publicly accessible singleton instance
    public static var instance:StageManager = new StageManager();

    private var m_stage:Stage;

    //I'm using a custom getter and setter in just in case you need perform some other 
    //initialization when the stage gets set...
    public function set stage(stg:Stage):void
    {
        m_stage = stg;
    }

    public function get stage():Stage
    {
        return m_stage;
    }

}

Тогда где-то еще, как вы, главный контроллер класса:

StageManager.instance.stage = this.stage; 

Теперь вы можете получить доступ к сцене и ее свойствам через StageManager:

var stageW:int = StageManager.instance.stage.stageWidth; 

Таким образом, не только вы, пан-класс, но и все, что в будущем, может выйти на глобальную сцену в любое время. Довольно круто, а?

Что касается дизайна вашего класса Pan, я согласен с @The_asMan - продлите MovieClip, Если только один Pan Экземпляр будет контролировать несколько MovieClip экземпляры, тогда, вероятно, было бы более разумно иметь это как свою собственную вещь (как вы описали выше).

Другие вопросы по тегам