2008-03-13

理解 flex actionscript

关键字: flex actionscript
as 不允许overload...即对于同一个函数名不能有不同的参数列表和返回值
类中的geter 和 setter 与其他的方法一样,除了
1.get函数没有参数,并且必须有返回值,并且必须有get关键字
2.set函数必须有参数并且没有返回值,并且必须有set关键字
public function get sampleProperty( ):String {
  return _sampleProperty;
}
public function set sampleProperty(value:String):void {
  _sampleProperty = value;
}


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

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

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

Interface 没有属性,只定义方法原型,并且不需要权限修饰符(默认为publish,呵呵,如果有权限的话,根本就用不了他,还有啥用)
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
      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.
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.
var xml:XML = new XML(loadedXMLData);

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


有两种方式访问XML数据--遍历DOM和使用E4X.
评论
yimogod 2008-03-17
楼上的同学,业术有专攻嘛
咖啡舞者 2008-03-17
AS3对XML的处理上表现的很满意。
duker 2008-03-16
其实java语言要比actionscript 成熟健壮得多..
例如反射这一部分.as3 中只有getDefinitionByName,describeType 等寥寥可数的几个方法.不象java ,对反射有完整的支持.只怪sun不争气,不好好弄个浏览器插件..
把这一块阵地拱手让给了flash..
发表评论

您还没有登录,请登录后发表评论

yimogod
搜索本博客
最近加入圈子
存档
最新评论