1

我正在尝试扩展 Loader 类。

我想在上面存储一个变量。

例子:

package
{
import flash.display.Loader;

public class MyLoader extends Loader
{
    private var _typeOfGallery:String

    public function MyLoader()
    {
        super()
    }

    public function set typeOfGallery(value:String):void
    {
        _typeOfGallery = value
    }

    public function get typeOfGallery():String
    {
        return _typeOfGallery
    }
}

}

然后我像这样使用:

var loader:MyLoader = new MyLoader()
loader.typeOfGallery = 'games'
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded)

function loaded(e:Event):void{
trace(e.target.typeOfGallery)
}

我收到此错误:

ReferenceError:错误 #1069:在 flash.display.LoaderInfo 中找不到属性 typeOfGallery 并且没有模式值。

(我已将错误消息从葡萄牙语翻译成英语)

如何扩展 Loader,以免收到此错误?

谢谢。

4

2 回答 2

2

Loader不分派Event.COMPLETE事件。你应该听

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded)

然后得到你MyLoader

function loaded(e:Event):void{
   trace(((e.currentTarget as LoaderInfo).loader as MyLoader).typeOfGallery);
}

在您的代码中,e.targetLoaderInfo因为COMPLETE事件冒泡到Loader自身。

于 2012-04-24T15:15:47.497 回答
0
loader.contentLoaderInfo.typeOfGallery = 'games'

是错误的 - 你想去加载器而不是它的 contentLoaderInfo...

loader.typeOfGallery = 'games'

trace(e.target.typeOfGallery) 应该可以工作,因为它是对加载器的引用!

于 2012-04-24T15:50:21.300 回答