我正在尝试扩展加载器类。
我想在上面存储一个变量。
例:
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)
}
我收到此错误:
引用错误:错误 #1069:在 flash.display.LoaderInfo 中找不到属性类型图库,并且没有模式值。
(我已经将错误消息从葡萄牙语翻译成英语)
如何扩展加载程序,以免收到此错误?
谢谢。
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.target
是一个LoaderInfo
,因为COMPLETE
事件冒泡到Loader
本身。
loader.contentLoaderInfo.typeOfGallery = 'games'
是错误的 - 你想去加载器而不是它的内容加载器信息...
loader.typeOfGallery = 'games'
trace(e.target.typeOfGallery) 应该可以工作,因为它是对加载器的引用!!