經過上次的問題,很感謝 網友“突發事件”給我的原檔案 在這裡特別感謝他,他是一個熱愛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檔案放在同樣的目錄裡面就會不會有事情發生,而且還可以調用自己定義的方法。
好,下次再記錄些好的文章