Flash+xml应用篇:自定义事件返回xml信息
2009-02-19 23:42
375 查看
问题:
我希望可以写一个外部加载xml 的类,并能够返回xml的信息
方法:
仿效flex 的 httpserver 类,可以返回一个xml 的信息;
Flex里面
一,自定义事件
xml:
二:封装类
操作:
暂时这样 :明天再改
在flash 里面的,首先我们先自定义一个事件类,用于加载xml的时候返回一个参数
自定义个LoadEvent 事件,这个事件带一个参数,result 类型是xml
自定义一个事件类型:LOADXML
2.定义一个加载xml的类,这个类用于管理xml 的加载
方法体:LoadXML(路径); 加载完后,就调用我们的事件
var sendevent:LoadEvent=new LoadEvent(LoadEvent.LOADXML);
sendevent.result=myxml;
this.dispatchEvent(sendevent);
由于我们的public class XMLManager extends EventDispatcher
XMLManager 继承了事件EventDispatcher 类 他是是 DisplayObject 类的基类 因此我们可以调用他的事件分派
EventDispatcher 类允许显示列表上的任何对象都是一个事件目标,同样允许使用 IEventDispatcher 接口的方法。
正式调用他
这样我们以后就可以使用这个已经封装好的来返回我们的xml信息了。
我希望可以写一个外部加载xml 的类,并能够返回xml的信息
方法:
仿效flex 的 httpserver 类,可以返回一个xml 的信息;
Flex里面
一,自定义事件
package ReadXML { import flash.events.Event; public class SendXMLEvent extends Event { public var Myxml:XML; public static const Send:String = "send"; public function SendXMLEvent(str:String) { super(str,false,false); } } }
xml:
<?xml version="1.0" encoding="UTF-8"?> <SongItem> <song> <name>周杰伦-彩虹</name> <url>http://www.shinehid.com/media_b/caihong.mp3</url> </song> <song> <name>周杰伦-青花瓷</name> <url>http://www.shinehid.com/media_b/caihong.mp3</url> </song> <song> <name>周杰伦-七里香</name> <url>http://www.shinehid.com/media_b/caihong.mp3</url> </song> </SongItem>
二:封装类
package ReadXML { import flash.events.*; import flash.net.*; [Event(name="sendEvent",type="SendXMLEvent")] public class GetXml extends EventDispatcher { private var mylist:XML; private static var obj:GetXml=null; public function GetXml() { //if(obj!=null) // new Error("SOrry"); } public function LoadXML(url:String):void { var _loader:URLLoader=new URLLoader(); _loader.load(new URLRequest(url) ); _loader.addEventListener(Event.COMPLETE,handReSult); _loader.addEventListener(IOErrorEvent.IO_ERROR,ErrorHander); } private function handReSult(event:Event):void { mylist=XML(event.target.data); var s:SendXMLEvent=new SendXMLEvent("sendEvent"); s.Myxml=mylist; dispatchEvent(s);// } public static function getInstance():GetXml { if(obj==null) obj=new GetXml(); return obj; } private function ErrorHander(e:IOErrorEvent):void { trace("cuowu"); throw new Error("cuowu"); } } }
操作:
private function GetList():void { obj.LoadXML("../Config/Mysong.xml"); obj.addEventListener("sendEvent",doing); } internal function doing(event:SendXMLEvent):void { MyList=XML( event.Myxml); trace(MyList); }
暂时这样 :明天再改
在flash 里面的,首先我们先自定义一个事件类,用于加载xml的时候返回一个参数
package { import flash.events.Event; public class LoadEvent extends Event { public static const LOADXML:String="loadxml"; public var result:XML; public function LoadEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false) { super(type,false,false); } override public function clone():Event { return new LoadEvent(result); } } }
自定义个LoadEvent 事件,这个事件带一个参数,result 类型是xml
自定义一个事件类型:LOADXML
2.定义一个加载xml的类,这个类用于管理xml 的加载
package { import flash.net.*; import flash.events.*; public class XMLManager extends EventDispatcher { public function XMLManager() { } public function LoadXML(pach:String):void { var ld:URLLoader=new URLLoader(); ld.load(new URLRequest(pach)); ld.addEventListener(Event.COMPLETE,resultHandle); ld.addEventListener(IOErrorEvent .IO_ERROR,errorhandle); } private function resultHandle(e:Event):void { var myxml:XML=XML(e.target.data ); var sendevent:LoadEvent=new LoadEvent(LoadEvent.LOADXML); sendevent.result=myxml; this.dispatchEvent(sendevent); } private function errorhandle(e:Event):void { throw new Error("加载失败"); } } }
方法体:LoadXML(路径); 加载完后,就调用我们的事件
var sendevent:LoadEvent=new LoadEvent(LoadEvent.LOADXML);
sendevent.result=myxml;
this.dispatchEvent(sendevent);
由于我们的public class XMLManager extends EventDispatcher
XMLManager 继承了事件EventDispatcher 类 他是是 DisplayObject 类的基类 因此我们可以调用他的事件分派
EventDispatcher 类允许显示列表上的任何对象都是一个事件目标,同样允许使用 IEventDispatcher 接口的方法。
正式调用他
package { import flash.display.Sprite; import flash.events.*; public class main extends Sprite { public function main() { var ld:XMLManager=new XMLManager(); ld.LoadXML("picture.XML"); ld.addEventListener(LoadEvent.LOADXML ,resulthander); } private function resulthander(e:LoadEvent):void { trace(e.result); } } }
这样我们以后就可以使用这个已经封装好的来返回我们的xml信息了。
相关文章推荐
- Flash+xml应用篇:自定义事件返回xml信息
- Flash+xml应用篇:自定义事件返回xml信息
- Java实现Flash请求的二进制流图片保存并返回XML信息包含图片访问地址
- ajax:利用XMLHttpRequest建立到服务器的连接并处理返回信息
- Struts2第十篇【数据校验、代码方式、XML配置方式、错误信息返回样式】
- 接受xml字符串+以流的形式返回信息
- C#开发之生成XmlDocument用来返回错误提示信息
- 请求url并返回信息以xml形式显示
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Flash的XMLSocket的性能分析(性能是随传递信息的加大而迅速下降的)
- Struts2 返回 xml 信息
- 黄聪:jquery对ajax的error内的XMLHttpRequest返回的exception获取里面的信息
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- 程序调试时用到的XML或者JSON数据接口(支持返回图片信息)
- cxf WebService中如何设定xml中返回值的节点信息
- eureka 启动失败 返回xml信息
- Struts2第十篇【数据校验、代码方式、XML配置方式、错误信息返回样式】
- firefox下jquery ajax 返回 [object XMLDocument]处理
- 《DB 查询分析器》批量执行DML语句并返回更详细的信息