Я много читал об отправке событий и до сих пор не могу заставить его работать. У меня есть класс, и я хочу, чтобы его события были видны другим классам, использующим этот. Основной класс:
import special.proxy.ProxyStream;
public class testproxy extends Sprite
{
var textspace:TextField=new TextField();
var proxydata:*;
public function testproxy()
{
textspace.autoSize="left";
textspace.text="ready";
addChild(textspace);
try
{
proxydata=new ProxyStream();
addChild(proxydata);
proxydata.load(proxyurl_string, fileurl_string);
proxydata.addEventListener("COMPLETE", complete);
proxydata.addEventListener(Event.COMPLETE, complete);
}
catch(e:*){textspace.text=String(e);}
setTimeout(checkProgress, 2000);
}
function checkProgress(){textspace.text=proxydata.progressstate;}
function complete(){textspace.text="loaded";}
}
Класс, который отправляет событие для основного класса:
import flash.events.*;
public class ProxyStream extends Sprite {
public var progressstate:String="0";
//[Event(name="complete", type="flash.events.Event")]
[Event(name="complete", type="flash.events.Event.COMPLETE")]
private function complete(e:Event):void {
progressstate="1";
dispatchEvent(e);
dispatchEvent(new Event("COMPLETE", true, true));
//dispatchEvent(new Event(Event.COMPLETE, true, true));
//dispatchEvent(new DataEvent("COMPLETE", false, false, e.target.data));
}
}
Как мы видим, данные прокси добавляются в список отображения. И да, функция завершает работу, потому что, когда я проверяю состояние выполнения через 2 секунды, оно имеет значение 1. Я пробовал много разных способов отправки события. Я до сих пор не могу получить это событие класса в моем основном классе. Я также хочу иметь возможность отправлять данные с этим событием, если это возможно, без создания дополнительного собственного класса событий. Спасибо за любую помощь.