getxml.as
package com.org{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
import flash.text.TextField;
public class getxml extends Sprite {
private var myxml:XML=new XML();
public var picArray:Array=new Array();
public function getxml() {
var url:String="pic.xml";
var myURLRequest:URLRequest=new URLRequest(url);//擷取外部地主
var myLoader:URLLoader=new URLLoader(myURLRequest);//外部載入xml
myLoader.addEventListener(Event.COMPLETE,OK);//進行監聽函數
}
function OK(e:Event):void {
myxml=XML(e.target.data);
var n:int=myxml.elements("*").length();//使用帶星號參數的 length() 方法可輸出元素的總數。 例如,numElement = addressbook.elements("*").length()。
var str:String;
for (var i:int = 0;i<n;i++) {
str=(myxml.elements("*")[i]).toString();
picArray.push(str);
trace(picArray[i]);
}
}
}
}
一個下午出現了一些好奇怪的問題,編譯器總是說我沒有定義方法
當我嘗試加上一個方法的時候,準備調用的時候就出現問題在第一幀裡面
添加代碼
var vv:getxml=new getxml();
出現1180: Call to a possibly undefined method addFrameScript.問題
方法沒有定義
可以當我嘗試定義個方法,編譯器總是一直說我沒有編譯
public function hello():String {
var hh:String="sssssss";
return hh;
}
再定義一個方法
package com.org{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
import flash.text.TextField;
public class getxml extends Sprite {
private var myxml:XML=new XML();
public var picArray:Array=new Array();
public function getxml() {
var url:String="pic.xml";
var myURLRequest:URLRequest=new URLRequest(url);//擷取外部地主
var myLoader:URLLoader=new URLLoader(myURLRequest);//外部載入xml
myLoader.addEventListener(Event.COMPLETE,OK);//進行監聽函數
}
function OK(e:Event):void {
myxml=XML(e.target.data);
var n:int=myxml.elements("*").length();//使用帶星號參數的 length() 方法可輸出元素的總數。 例如,numElement = addressbook.elements("*").length()。
var str:String;
for (var i:int = 0;i<n;i++) {
str=(myxml.elements("*")[i]).toString();
picArray.push(str);
trace(picArray[i]);
}
}
public function hello():String {
var hh:String="sssssss";
return hh;
}
}
}
在第一幀寫
var vv:getxml=new getxml();
//addChild(vv);
mytext.text=vv["hello"]();
問題:同樣出錯
但是
package{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class myclass extends Sprite{
public var ss:String;
public var hh:int;
public function myclass(){
hh=2;
}
public function hello():String{
ss="sssss";
return ss;
}
}
}
這個案例自己測試過又ok
var yy:myclass=new myclass();
mytext.text=yy.hello();
真的搞不懂as3.0 出錯了哪裡,我只是想寫一方法調用而已,為什麼這麼難。。。