arm-linux

http://armboard.taobao.com/

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Flex中使用JSON对象为属性赋值

 

 

 

JavaScript中,JSON的简洁和强大令人印象深刻。ActionScript3作为一种从JavaScript语言发展起来的语言,依然可以使用JSON

依然可以   var   object={a:1,b:”b”,c:”1111”};这样的JSON形式创建ActionScript对象。

 

JavaScript中,我们常常在new 对象时,通过传入{……}这样的JSON数据方便地初始化对象。

ActionScript中,我们依然可以这样做。

 

 

 

样例代码:

package

{

    public   class ConstructTemplate 

    {

      

       private var  thisA;

       private var  thisB;

       private var  thisC;

       /**

        * 使用JSON对象进行参数构造

        */

       public function ConstructTemplate(...args)

       {

           //TODO: implement function

           /**

            *

            * 我们把它的属性取出来,赋给this的各个同名属性。

            */

            for( var i:int=0;i<args.length;i++){

           this.initProperties(args[i]);

            }

          

          

       }

 

/*

   可以在构造对象后为参数赋值。

*/

       public function initProperties(...args)

       {

           //TODO: implement function

           /**

            *

            * 我们把它的属性取出来,赋给this的各个同名属性。

            */

          

            for( var i:int=0;i<args.length;i++){

                for(var name:String in args[i]){

                    this[name] =args[i][name];

                }

            

            }

            

          

          

       }

       public function set a(a){

           this.thisA=a;

       }

      

       public function get a(){

          return this.thisA;

       }

      

       public function set b(b){

           this.thisB=b;

       }

       public function get b(){

          return this.thisB;

       }

       public function set c(c){

           this.thisC=c;

       }

       public function get c(){

          return this.thisC;

       }

   

 

    }

}

使用代码:

var constructTemplate=  new ConstructTemplate({a:"a"},{a:100,b:"B"},{thisC:"thisC"});

 

 

现在在ActionScript3中使用JSON对象初始化属性有特殊的意义。

因为,ActionScript3不支持函数重载。而且在严格模式下,给方法传入参数时,数量和类型必须一致,否则编译不过。

因此,使用...args这样的技术就尤为重要。

ActionScript3中构造器只能有一个。使用上面这样的构造器无疑是最灵活的。

 

既然ActionScript3无法 重载函数,那么大量使用args模拟函数重载就是大有可为的。

 

 

 

 

 

 

 

 

 

posted on 2008-12-03 18:23  arm-linux  阅读(1100)  评论(0编辑  收藏  举报