переместить данные из события в другой класс - PullRequest
0 голосов
/ 31 мая 2009

во Flex, если у меня есть класс загрузчика (т.е. XMLLoader) и класс документа (document.as), а в document.as я создаю экземпляр XMLLoader

var ldr:XMLLoader = new XMLLoader(url);

... и в классе document.as у меня есть текстовое поле, которое я хотел бы обновлять с прогрессом, достигнутым XMLLoader, непрерывно используя событие progress URLLoaders. Это означает, что в поле будет отображаться загрузка в байтах, которую он получает

Я не уверен, как постоянно выталкивать данные из события и добавлять их в другой класс. Например:

myLstnr.addEventListener(ProgressEvent.PROGRESS, getProgress);

private function getProgress():void
{
    // as progress updates, move it to document.as class's textbox
{

Ответы [ 3 ]

0 голосов
/ 01 июня 2009

Вы можете отправить событие в другой класс изнутри вашего getProgress (). Создание пользовательских событий

0 голосов
/ 01 июня 2009

Вы хотите повторно отправить ProgressEvent. Вы можете использовать пользовательское событие для хранения вашего объекта события. Так, например:

private function getProgress(event:ProgressEvent):void {
    dispatchEvent(new CustomObjectDataEvent(event, 'progress'));
}

Где CustomObjectDataEvent - это пользовательский класс событий, который вы создаете и который сохраняет объект (ProgressEvent) в вашем объекте пользовательских событий. Вот пример реализации пользовательского события, которое хранит этот объект:

package events
{
    import flash.events.Event;

    public class CustomObjectDataEvent extends Event
    {
        public var objectData:Object;

        public function CustomObjectDataEvent(objectData:Object, type:String, bubbles:Boolean=false) {
            super(type, bubbles);
            this.objectData = objectData;
        }

        public override function clone():Event {
            return new CustomObjectDataEvent(objectData, type, bubbles);
        }
    }
}

Проверьте: http://livedocs.adobe.com/flex/3/html/createevents_3.html для получения дополнительной информации об отправке пользовательских событий.

0 голосов
/ 31 мая 2009

Ваш обработчик события (getProcess) должен принять ProgressEvent в качестве параметра. От этого вы получите необходимую информацию. Когда вы это сделаете, просто запишите его в нужное текстовое поле, например,

document.textfield.text = event.bytesLoaded;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...