每天学一点flash(28) as3.0 自定义类 笔记(2)

经过上次的问题,很感谢 网友“突发事件”给我的原文件 在这里特别感谢他,他是一个热爱flash技术的人。

今天有部分的问题解决了,我把他的类改了一些,日后我们可以尝试调用外部加载xml的写法来想知道我们的答案。 就是对为类写监听事件有了一个新的看法。在as3.0里面

看这句:

this.dispatchEvent(new Event(Event.COMPLETE)); 

getmyxml.as 文件

package {
 import flash.display.Sprite;
 import flash.net.URLLoader;
 import flash.net.URLRequest;
 import flash.net.URLLoader;
 import flash.events.*;
 import flash.text.TextField;
 public class getmyxml extends Sprite {
  public var myxml:XML;
  public var picArray:Array=new Array();
  public var url:String;
  public function getmyxml(myurl:String) {
   myxml=new XML();
   url=myurl;
   var myURLRequest:URLRequest=new URLRequest(url);
   var myLoader:URLLoader=new URLLoader(myURLRequest);
             myLoader.addEventListener(Event.COMPLETE,OK);
   
  }
  
   function OK(e:Event):void {
    myxml=XML(e.target.data);
    var n:int=myxml.elements("*").length();
    var str:String;
    for (var i:int = 0; i<n; i++) {
     str=(myxml.elements("*")[i]).toString();
     picArray.push(str);
     //trace(picArray[i]);
     
     }
     
          // trace(me.mypic(picArray));
   
        // addChild(me);
         //addChild(_str);
       this.dispatchEvent(new Event(Event.COMPLETE));// 这个地方今天特别感兴趣,自己写的类加上监听事件
   }
   
  
  }
  
  
}

注:引用官方文档

将事件调度到事件流中。 事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。

将事件调度到事件流中。

readmyxml.as

package {
 import flash.display.Sprite;

 import flash.events.*;
 import flash.text.TextField;
 public class readmyxml extends Sprite {

  public var myarray:Array=new Array();
  public function readmyxml() {

  }
  public function mypicture(list:Array):Array {
   myarray=list;
   return myarray;

  }
 }

 }

在第一帧的写:

var okxml:getmyxml=new getmyxml("pic.xml");
addChild(okxml);
okxml.addEventListener(Event.COMPLETE,good);
function good(e:Event):void {
 trace("good");
 
 var _str:TextField=new TextField();
 var me:readmyxml=new readmyxml();
  _str.text=me.mypicture(okxml.picArray).toString();
  addChild(_str);
  addChild(me);
 
 
}

 

 


pic.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<map>
<jpg>a0.jpg</jpg>
<jpg>a1.jpg</jpg>
<jpg>a2.jpg</jpg>
<jpg>a3.jpg</jpg>
<jpg>a4.jpg</jpg>
<jpg>a5.jpg</jpg>
<jpg>a6.jpg</jpg>
</map>

 

在之前我把把写在文档类里面 经常尝试添加 getmyxml 里面上去,发现就一直出错

的确好像有些问题那样但是 把源文件与as文件放在同样的目录里面就会不会有事情发生,而且还可以调用自己定义的方法。

好,下次再记录些好的文章

 

你可能感兴趣的:(Flash)