<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Love is love, work is need.

    Pay my all effort for a memorable life story.

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      7 隨筆 :: 0 文章 :: 3 評(píng)論 :: 0 Trackbacks

    II.1.Each MXML component extends,or id derived from, an existing ActionScript class.

    II.2. In an MXML component, each property that you want to be bindable needs its own [Bindable] tag.

    With ActionScript class definitions, you can mark all the class's properties as bindable with a single instance of the [Bindable] metadata tag placed before the class declaration.

    II.3.compc for libraries generation.

    ####page.256 23:22 2010-3-17

    II.4.Navigator containers / View states

    Navigator containers : Move from one view to another.
    View states: change an existing view.

    NOTE:
        Q&A
        Q:How to handling navigator container sizing?
        A:3 ways:
            1.Set the Set the navigator container's dimensions to specific pixel or percentage dimensions, and then set the nested container sizes to 100 percent height and width.Each of the nested view containers then resizes to fill the available space in the navigator container.
            2.Set the nested containers to specific pixel dimensions, and set the navigator container's 'resizeToContent' property to true.
            CAUTION:
                Setting resizeToContent to true forces the navigator container to re-measure and
    re-draw itself as the user navigates through the application. This can cause interesting
    and unintended visual effects, particularly when the navigator container has a visible border or
    background.

    II.5.Backslash and Forwardslash character

    Do not usint backslash character '\' as separator in the path to an application asset, you should always using forwardslash character '/' as separator.

    II.6.New line


    ActionScript:    '\n'
    MXML    :    "&#13;"

    II.7.ActionScript basic access control


        public   
        private
        protected    class and it subclass, note this is different from Java, which is allowed access in same package.
        internal     the default access specifier that allowed all other class which in the same package can access it.
        BUT, if above default namespace is not suit for you, you can create your namespace.
     

       III.1.To define an namespace, you have two choice: omit the URI or not, like:


        namespace myzoo;
            or
        namespace myzoo = "
        once the namespace defined, in its using scope, it can't be redefined.
        So, what the scope it control?
        e.g,:
            package org.mai {
                    namespace maizoo;  //means internal.
            }
            package org.mai {
                public namespace maizoo; //means it can be accessed by other class which it improved it.
            }

        III.2. Applying namespaces


        e.g,:
            namespace maizoo;
            class MaiClass{
                maizoo myFunction(){};
            }
            the namespace can be placed in front of variable, constant, function, but class.

        III.3.Refrencing namespaces


        Unlike the default namespaces, (public, private...etc;), which they are controled by context, the user defined namespace must be specified by user himself. Still, you can using the keyword 'use namespace' to simplicified it.(Like you did in C++!)
        use namespace maizoo;
        myFunction();
        or
        maizoo::myFunction();

    II.8.The variable scope

        ActionScript, unlike C++ or Java, doesn't have a 'block level scope', which means that if your declare a variable in a block, the variable is also available in anywhere of the function which the block belong to.
        e.g,:
        public function do:void(){
            for(var i:int = 0; i < 20 ; i++){
                var m:String = i + "xxx";
            }
            trance(m); // also avaiable here!
        }
        Because laking the block level scope variable scope, the compiler is ( almost is ) can understand how many variable is in some function, this is called 'hoisting', which can be thought as the compiler move all the variables declared to the top of an function. NOTE: the assignment will not be hositing, so the follow is easy understandable:

            trace(num);    // output NaN;
            var num:Number = 20;
            trace(num);// will outout 20.

    II.9. Default value

    DataType Value
    Boolean false
    int 0
    uint 0
    Numbwer NaN
    * undefined
    Object null
    String null
    All Other Class null

     

    II.10. is / instanceof /as

        III.1.is / instanceof    :: return Boolean.

        is : can check an object is an instance of an class or an inherit from some class or it is implement of some interface.

        instanceof: as well as 'is' but will be return false if using check an interface.

        III.2. as


        as : is return an string or null, to check an object is a member of a given data type.
        e.g,:
            var a:Sprite = new Sprite();
            trace( a as Sprite);    //[Object Sprite]
            trace( a as IEDispatch);    //[Object Sprite]
            trace( a as Number);    //null

    II.11. Dynamic class and Sealed class

    Dynamic class is a class which it's object can add method or variable at runtime. This is like javascript prototype but more strict.

    But method added by this way is not have the ability to access the private variable.(NEED CHECKED!)

    ####page 83,proAS_Flex3 23:36 2010-3-23

    II.12.Function Expressions and Statements

    Thinking following example:

    class MaiZoo{
        var maiFunc = function(){};
        function maiStateFunc(){};
    }

    var maiZoo:MaiZoo = new MaiZoo();
    maiZoo.maiFunc(); //Error in 'Strick' mode;Ok in standard mode
    maiZoo.maiStateFunc();    // Works fine in both mode.

    If you wanna call an expression function in strick mode, the workaround way is:

    maiZoo['maiFunc']();    //Guess what? like EL hah? And this is real a javascript way:)

    Both satuation above code works fine.

    Second way, you can declare whole class as 'dynamic',this way allow you call function express in strick mode, but this way will sacrifice the strick checking and if you attempt to access an undefined property for an instance,the compiler will not generate an error.(?)

        III.1.Live sope


        The different between function expression and function statement is that the function statement is exist throughtout the scope in which they are defined, INCLUDING IN THE STATEMENTS THAT APPEAR BEFORE THE FUNCTION STATEMENT!!!

    But the function expression is not. So the following code will generate an error:

                expressionFunc(); //Runtime Error

                var expressionFunc:Function= function(){};

        and if we using:
                statementFunc(); //OK
                function statementFunc():void{};

        III.2. Delete property


            dynamic class Obj{};
            var myObj:Obj = new Obj();
            myObj.expressionFunc = function(){};
            delete myObj.expressionFunc;
            myObj.expressionFunc();            //Error; cause the function is 'anonymous', it's just GONE!
            //BUT..
            function stateFunc():void{}
            myObj.stateFunc = stateFunc;
            delete stateFunc;        //No effect. 
            stateFunc();        //Still working, lalala~
            delete myObj.stateFunc;
            myObj.steteFunc();        // Error!
            stateFunc();        //Haha, Nondead!

    II.13.Function ! Function! Function!

        All thing is object, so all the function call is pass by refrence, BUT, for primer type, they works as if pass by value.

        Have fixed argument(s) function has an imply object called 'arguments'
            1. arguments is an array that contain all actual arguments the function be passed.
            2. arguments.length
            3. arguments.callee is an refrence to the function itself. so if you are using an anonymous function, you know how to do if you want do a recursion.
            4. if you named your parameter 'arguments', it will overwrite the arguments, so you cry means nothing!
            ...(rest)
            this is an way to define an function that not have the fixed but variable arguments.
            e.g,:
            function doX(... args):void{}
            also, you can using (rest) as the way 'arguments' do in normal function, but they DONT HAVE an 'callee' attribute.
    ####page 101,proAS_Flex3 23:36 2010-3-23 22:19 2010-3-24


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲а∨精品天堂在线| 免费的全黄一级录像带| 77777亚洲午夜久久多人| 国产精品色午夜免费视频| 一级毛片在线免费播放| 日韩一区二区免费视频| 99re6在线视频精品免费| 又粗又黄又猛又爽大片免费| 亚洲人色大成年网站在线观看| 久久久精品午夜免费不卡| 国产成人亚洲综合网站不卡| 亚洲综合伊人久久大杳蕉| 无码免费午夜福利片在线| 亚洲国产成人精品久久| 亚洲毛片网址在线观看中文字幕 | 一级成人a毛片免费播放| 亚洲日韩精品无码一区二区三区| 免费在线观看一区| 久久国产成人精品国产成人亚洲| a级毛片免费观看在线| 亚洲六月丁香婷婷综合| 久久亚洲综合色一区二区三区| 日韩免费无码一区二区视频| 亚洲视频在线免费观看| 成年网站免费入口在线观看| 亚洲伊人久久大香线蕉在观 | 久久精品国产99国产精品亚洲| 亚洲午夜久久久久妓女影院| 日韩激情淫片免费看| 一级毛片在线免费看| yellow视频免费看| 亚洲精品又粗又大又爽A片| 高清国语自产拍免费视频国产 | 久久国产成人亚洲精品影院| 四虎影视永久免费视频观看| 性短视频在线观看免费不卡流畅 | 亚洲一区二区三区写真| 亚洲精品无码永久在线观看| 久久久久久99av无码免费网站 | 亚洲成a人片在线看| 亚洲视频国产精品|