理解 flex actionscript

本文介绍了ActionScript 3.0的基本概念,包括属性的getter和setter方法的定义、接口的使用、错误处理机制以及XML数据的操作方法。通过示例代码详细展示了如何实现这些功能。
as 不允许overload...即对于同一个函数名不能有不同的参数列表和返回值
类中的geter 和 setter 与其他的方法一样,除了
1.get函数没有参数,并且必须有返回值,并且必须有get关键字
2.set函数必须有参数并且没有返回值,并且必须有set关键字
Java代码 复制代码
  1. public function get sampleProperty( ):String {   
  2.   return _sampleProperty;   
  3. }   
  4. public function set sampleProperty(value:String):void {   
  5.   _sampleProperty = value;   
  6. }  
public function get sampleProperty( ):String {
  return _sampleProperty;
}
public function set sampleProperty(value:String):void {
  _sampleProperty = value;
}


Array对象可以放入不同类型的实例.

Object class 是动态的,这意味着你可以在Object的实例中添加任意属性(不知道有没有方法).

如果要对类中的方法override,那么函数名,参数列表,返回值,以及访问权限都必须与目标方法相同...

Interface 没有属性,只定义方法原型,并且不需要权限修饰符(默认为publish,呵呵,如果有权限的话,根本就用不了他,还有啥用)
Java代码 复制代码
  1. package com.example {   
  2.   public interface IExample {   
  3.     function a( ):String;   
  4.     function b(one:String, two:uint):void;   
  5.   }   
  6. }   
  7.   
  8. package com.example {   
  9.   import com.example.IExample;   
  10.   public class Example implements IExample {   
  11.     public function Example( ) {   
  12.     }   
  13.     public function a( ):String {   
  14.       return "a";   
  15.     }   
  16.     public function b(one:String, two:uint):void {   
  17.       trace(one + " " + two);   
  18.     }   
  19.   }   
  20. }  
package com.example {
  public interface IExample {
    function a( ):String;
    function b(one:String, two:uint):void;
  }
}

package com.example {
  import com.example.IExample;
  public class Example implements IExample {
    public function Example( ) {
    }
    public function a( ):String {
      return "a";
    }
    public function b(one:String, two:uint):void {
      trace(one + " " + two);
    }
  }
}



Error 分为同步和不同步两种...
sync error利用try..catch块来处理,他表示当你试图执行某段语句(当然这段语句可以产生error)时,立即抛出error...
async error经常发生在网络操作的过程中...比如说你请求的http://.....a.file 不存在,要经过程序请求过才知道a.file不存在,这时才会抛出error...

async error的处理方法与event类似...不如说,我定义了一个URLLoader对象去访问一个位于Flash Player安全沙箱外的数据,那么这个URLLoader对象就会抛出一个SecurityErrorEvent
Java代码 复制代码
  1.       private function initializeHandler(event:Event):void {   
  2.         var loader:URLLoader = new URLLoader( );   
  3.          // In order to test this you'll need to specify a URL of a file that   
  4.          // exists outside of the security sandbox.   
  5.         loader.load(new URLRequest("data.xml"));   
  6.         loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,   
  7. securityErrorHandler);   
  8.       }   
  9.       private function securityErrorHandler(event:SecurityErrorEvent):void {   
  10.         errors.text += event + "/n";   
  11.       }  
      private function initializeHandler(event:Event):void {
        var loader:URLLoader = new URLLoader( );
         // In order to test this you'll need to specify a URL of a file that
         // exists outside of the security sandbox.
        loader.load(new URLRequest("data.xml"));
        loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,
securityErrorHandler);
      }
      private function securityErrorHandler(event:SecurityErrorEvent):void {
        errors.text += event + "/n";
      }



定义XML有两种方式:
1.
Java代码 复制代码
  1. var xml:XML = <books>   
  2.               <book>   
  3.                 <title>Programming Flex 2</title>   
  4.                 <authors>   
  5.                   <author first="Chafic" last="Kazoun" />   
  6.                   <author first="Joey" last="Lott" />   
  7.                 </authors>   
  8.               </book>   
  9.               ...   
  10.             </books>;  
var xml:XML = <books>
              <book>
                <title>Programming Flex 2</title>
                <authors>
                  <author first="Chafic" last="Kazoun" />
                  <author first="Joey" last="Lott" />
                </authors>
              </book>
              ...
            </books>;


2.
Java代码 复制代码
  1. var xml:XML = new XML(loadedXMLData);  
var xml:XML = new XML(loadedXMLData);

这里要注意loadedXMLData--为string,
默认情况下,Flash Player 会吧所有的String 解析为XML.并且将String中的空格解析为node,如果有必要,需要在定义xml实例前,调用如下语句
Java代码 复制代码
  1. XML.ignoreWhitespace = true;   
  2. var xml:XML = new XML(loadedXMLData);  
XML.ignoreWhitespace = true;
var xml:XML = new XML(loadedXMLData);


有两种方式访问XML数据--遍历DOM和使用E4X.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值