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

来源:互联网 发布:随身淘宝:皇家小地主 编辑:程序博客网 时间:2024/05/21 21:35

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 出错了哪里,我只是想写一方法调用而已,为什么这么难。。。