Actionscript: как передать объекты в событие загрузчика - PullRequest
0 голосов
/ 12 декабря 2011

Каков рекомендуемый способ передачи объектов в обработчики событий загрузчика?

        var l:Loader = new Loader();
        var o:Object = new Object();
        l.tag = o; // i imagine something like this
        l.contentLoaderInfo.addEventListener(Event.COMPLETE, splashCompleted);
        l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, splashIoerror);         
        l.load(new URLRequest(path));


        function splashCompleted(e:Event):void
        {
            // here i want to access the object o
        }

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Зачем вам это нужно?Если загрузчиков много, и вы хотите связать некоторые данные с каждым из них, было бы лучше написать либо подкласс, либо класс-оболочку для хранения ваших данных.Например, давайте рассмотрим подкласс:

public class TaggedLoader extends Loader
{
    public var tag:Object;
}

Используя TaggedLoader вместо Loader, вы можете легко получить доступ к данным, связанным с объектом загрузчика:

var l:Loader = new TaggedLoader();
var o:Object = new Object();

l.tag = o;
l.contentLoaderInfo.addEventListener( Event.COMPLETE, splashCompleted );
l.load( new URLRequest( path ) );

function splashCompleted( e:Event ):void
{
    var taggedLoader:TaggedLoader = ( e.currentTarget as LoaderInfo ).loader as TaggedLoader;
    var tag:Object = taggedLoader.tag;
}

Также возможноиспользуйте карты (Object или Dictionary), но с точки зрения производительности карты хуже.

0 голосов
/ 12 декабря 2011

Вы можете получить доступ к Loader из обработчика событий, используя это:

( e.currentTarget as LoaderInfo ).loader
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...