hi, I want to create some custom event handler, so here is my code at stage
[AS]import getInfo;
var hhh:getInfo = new getInfo();[/AS]
my class getInfo;
[AS]package {
import flash.display.MovieClip;
import flash.events.Event;
import phpInfo;
import getInfoEvent;
public class getInfo extends MovieClip {
public function getInfo() {
var url:String = "http://localhost:81/www.theflashblog-bg.com/fcp_v2/bin/php/showPosts.php";
var php:phpInfo = new phpInfo();
php.getAllPosts(url);
addEventListener(getInfoEvent.getXML, heh);
}
public function heh(info:getInfoEvent):void {
trace(">> "+info.xmlArrayData);
}
}
}[/AS]
get form php ifrmation class: class phpInfo
[AS]package {
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables
import flash.xml.XMLDocument;
import flash.display.Stage;
import flash.display.MovieClip;
import getInfoEvent;
import getInfo;
public class phpInfo extends MovieClip{
public static const readyXML:String = "readyXML";
public var query:String;
public var id:String;
public var ArrayOfInfo:Array = new Array();
private var phpLoader:URLLoader = new URLLoader();
private var request_:URLRequest = new URLRequest();
private var varsToSend:URLVariables = new URLVariables();
public function phpInfo():void {
request_.method = URLRequestMethod.POST;
phpLoader.dataFormat = URLLoaderDataFormat.TEXT;
}
public function getAllPosts(url:String):void {
request_.url = url;
//set needed info
varsToSend.hostnam = "localhost";
varsToSend.database = "theblog";
varsToSend.username = "tAdmin";
varsToSend.password = "tpass";
//
request_.data = varsToSend;
phpLoader.addEventListener(Event.COMPLETE, getAllPosts_COMPLETED);
phpLoader.load(request_);
}
private function getAllPosts_COMPLETED(info:Event):void {
var gallery_xml:XMLDocument = new XMLDocument();
gallery_xml.ignoreWhite = true;
gallery_xml.parseXML(phpLoader.data);
var i:uint;
var al:Number = gallery_xml.firstChild.childNodes.length;
for (i=0;i<al;i++) {
ArrayOfInfo.push(new Array(gallery_xml.firstChild.childNodes*.attributes["id"], gallery_xml.firstChild.childNodes*.attributes["date"], gallery_xml.firstChild.childNodes*.attributes["title"], gallery_xml.firstChild.childNodes*.attributes["author"], gallery_xml.firstChild.childNodes*.attributes["view"], gallery_xml.firstChild.childNodes*.attributes["categry"], gallery_xml.firstChild.childNodes*.attributes["attach"], gallery_xml.firstChild.childNodes*.attributes["image"], gallery_xml.firstChild.childNodes*.attributes["comments"]));
}
this.dispatchEvent(new getInfoEvent(getInfoEvent.getXML, ArrayOfInfo));
}
}
}[/AS]
event class:class getInfoEvent
[AS]package {
import flash.events.Event;
public class getInfoEvent extends Event{
public static const getXML:String = "getXML";
public var xmlArray:Array = new Array();
public function get xmlArrayData():Array {
return xmlArray;
}
public function getInfoEvent(type:String, gotData:Array):void {
xmlArray = gotData;
super(type, true);
trace(xmlArray);
}
public override function clone():Event {
trace("<<>>");
return new getInfoEvent(type, xmlArray);
}
}
}[/AS]
So, what is the problem. The problem is that in function getInfoEvent(), it trace me the array correctly, but this clone(), don’t trace “<<>>”, and I don’t have function heh() trace too. What is wrong?