您的位置:首页 > 其它

每天学一点flash(27) as3.0自定义类 错误笔记

2012-02-14 11:51 106 查看
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 出错了哪里,我只是想写一方法调用而已,为什么这么难。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: