作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个专门关于创建自定义 Loader 类作为 How do I modify existing AS3 events so that I can pass data? 的后续问题的问题.如果这不是解决问题的正确方法,请告诉我。
我有一个自定义 Loader 类和一个自定义 LoaderInfo 类。我想不通的是如何让 Loader 类使用自定义 LoaderInfo 类,因为它是 contentLoaderInfo 属性。
package com.display {
import flash.display.Loader;
import com.display.CustomLoaderInfo;
public class CustomLoader extends Loader {
public var customData:*;
public function CustomLoader(passedData: *= null) {
customData = passedData;
}
}
}
^ 必须在那里做一些事情才能让它拥有新的 CustomLoaderInfo
package com.display {
import flash.display.LoaderInfo;
import flash.events.Event;
import com.events.CustomEvent;
public class CustomLoaderInfo extends LoaderInfo {
public var customData:*;
public function CustomLoaderInfo(passedData: *= null) {
customData = passedData;
}
override public function dispatchEvent(event:Event):Boolean {
var customEvent:CustomEvent = new CustomEvent(event.type, customData, event.bubbles, event.cancelable);
return super.dispatchEvent(customEvent);
}
}
}
^ 这可能行得通,但由于我无法让 CustomLoader 使用它,所以我还不知道。
最佳答案
我不知道它如何适合您正在做的事情,但您根本不会费心制作扩展的 LoaderInfo。 Loader.contentLoaderInfo 有一个名为 loader 的属性,它将返回所使用的 Loader(或在本例中为 CustomLoader)。理论上,您可以使用您拥有的 CustomLoader 类来执行此操作:
var loader: CustomLoader = new CustomLoader("Extra Data");
loader.load(new URLRequest("file.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
function loaderComplete(event: Event) : void
{
var customData:* = (event.target.loader as CustomLoader).customData;
trace(customData); // Extra Data
}
关于actionscript-3 - 使用自定义 LoaderInfo 类的自定义 AS3 Loader 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762521/
我是一名优秀的程序员,十分优秀!