如果我有一个加载器类(即XMLLoader)和一个文档类(document.as),并且在document.as我实例化XMLLoader
var ldr:XMLLoader = new XMLLoader(url);
...并且在document.as类上有一个文本框,我希望通过使用URLLoaders进度事件不断更新XMLLoader的进度。意思是,该框将显示它收到的以字节为单位的负载
我不确定如何不断地将数据从事件中推出并将其添加到另一个类中。例如:
myLstnr.addEventListener(ProgressEvent.PROGRESS, getProgress);
private function getProgress():void
{
// as progress updates, move it to document.as class's textbox
{
答案 0 :(得分:0)
您的事件处理程序(getProcess)必须接受ProgressEvent作为参数。从那里,您将获得所需的信息。当你这样做时,只需将它写出到你想要的文本字段,例如
document.textfield.text = event.bytesLoaded;
答案 1 :(得分:0)
您可以从getProgress()内部向其他类调度事件。 Creating custom events
答案 2 :(得分:0)
您需要重新调度ProgressEvent。您可以使用自定义事件来存储事件对象。例如:
private function getProgress(event:ProgressEvent):void {
dispatchEvent(new CustomObjectDataEvent(event, 'progress'));
}
CustomObjectDataEvent是您创建的自定义事件类,用于在自定义事件对象中存储对象(ProgressEvent)。以下是存储此对象的自定义事件的示例实现:
package events
{
import flash.events.Event;
public class CustomObjectDataEvent extends Event
{
public var objectData:Object;
public function CustomObjectDataEvent(objectData:Object, type:String, bubbles:Boolean=false) {
super(type, bubbles);
this.objectData = objectData;
}
public override function clone():Event {
return new CustomObjectDataEvent(objectData, type, bubbles);
}
}
}
有关调度自定义事件的详细信息,请查看:http://livedocs.adobe.com/flex/3/html/createevents_3.html。