我正在尝试扩展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以便我不会收到此错误?
感谢。
答案 0 :(得分: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.target
是LoaderInfo
,因为COMPLETE
事件会向Loader
本身冒泡。
答案 1 :(得分:0)
loader.contentLoaderInfo.typeOfGallery = 'games'
错误 - 你想要加载器而不是它的contentLoaderInfo ...
loader.typeOfGallery = 'games'
跟踪(e.target.typeOfGallery)应该工作,因为它引用了加载器!!