Flex 数组array的使用实例

Array
----------------------------------------------------------------
1.
<mx:Script><![CDATA[
    var myArray: Array = ["AK", "AL", "AR"];
]]></mx:Script>
2.
<mx: Array >
    <mx:String>AK</mx:String>
    <mx:String>AL</mx:String>
    <mx:String>AR</mx:String>
</mx: Array >
3.
<mx:Script><![CDATA[
    var expenses: Array = [
        {Month: "January", Profit: 2000, Expenses: 1500, Amount: 450},
        {Month: "February", Profit: 1000, Expenses: 200, Amount: 600},
        {Month: "March", Profit: 1500, Expenses: 500, Amount: 300},
        {Month: "April", Profit: 500, Expenses: 300, Amount: 500},
        {Month: "May", Profit: 1000, Expenses: 450, Amount: 250},
        {Month: "June", Profit: 2000, Expenses: 500, Amount: 700}
    ];
]]></mx:Script>
-----------------------------------------------------------------------

----------------------------------------------------------------------
// Use Array constructor.
var myArray: Array = new Array ();
myArray.push("one");
myArray.push("two");
myArray.push("three");
trace (myArray); // output: one,two,three

// Use Array literal.
var myArray: Array = ["one", "two", "three"];
trace (myArray); // output: one,two,three
-----------------------------------------------------------------

----------------------------------------------------------------
var names: Array = new Array ();
trace(names.length); // output: 0

var names: Array = new Array (3);
trace(names.length); // output: 3
trace(names[0]); // output: undefined
trace(names[1]); // output: undefined
trace(names[2]); // output: undefined

var names: Array = new Array ("John", "Jane", "David");
trace(names.length); // output: 3
trace(names[0]); // output: John
trace(names[1]); // output: Jane
trace(names[2]); // output: David
-------------------------------------------------------------------

-----------------------------------------------------------------------
var planets: Array = new Array ();
planets.push("Mars");       // array contents: Mars
planets.unshift("Mercury"); // array contents: Mercury,Mars
planets.splice(1, 0, "Venus", "Earth");
trace(planets);             // array contents: Mercury,Venus,Earth,Mars


var oceans: Array = ["Victoria", "Pacific", "Aral", "Superior", "Indian", "Huron"];
oceans.splice(2, 2, "Arctic", "Atlantic"); // replaces Aral and Superior
oceans.pop();   // removes Huron
oceans.shift(); // removes Victoria
trace(oceans); // output: Pacific,Arctic,Atlantic,Indian

var lakes: Array = oceans.splice(2, 2, "Arctic", "Atlantic");
trace(lakes); // output: Aral,Superior


var oceans: Array = ["Arctic", "Pacific", "Victoria", "Indian", "Atlantic"];
delete oceans[2];
trace(oceans);        // output: Arctic,Pacific,,Indian,Atlantic
trace(oceans[2]);     // output: undefined
trace(oceans.length); // output: 5

var oceans: Array = ["Arctic", "Pacific", "Victoria", "Aral", "Superior"];
oceans.length = 2;
trace(oceans); // output: Arctic,Pacific


var oceans: Array = ["Arctic", "Atlantic", "Indian", "Pacific"];
oceans.reverse();
trace(oceans); // output: Pacific,Indian,Atlantic,Arctic

 

var poets: Array = ["Blake", "cummings", "Angelou", "Dante"];
poets.sort(); // default sort
trace(poets); // output: Angelou,Blake,Dante,cummings

poets.sort( Array .CASEINSENSITIVE);
trace(poets); // output: Angelou,Blake,cummings,Dante

poets.sort( Array .DESCENDING);
trace(poets); // output: Dante,cummings,Blake,Angelou

poets.sort( Array .DESCENDING | Array .CASEINSENSITIVE); // use two options
trace(poets); // output: Dante,cummings,Blake,Angelou
----------------------------------------------------------------------------
var names: Array = new Array ("John Q. Smith", "Jane Doe", "Mike Jones");
function orderLastName(a, b):int {
var lastName:RegExp = //b/S+$/;
var name1 = a.match(lastName);
var name2 = b.match(lastName);
if (name1 < name2) {
    return -1;
} else if (name1 > name2) {
    return 1;
} else {
    return 0;
}
}
trace(names); // output: John Q. Smith,Jane Doe,Mike Jones
names.sort(orderLastName);
trace(names); // output: Jane Doe,Mike Jones,John Q. Smith
--------------------------------------------------------------------------

----------------------------------------------------------------------------
var poets: Array = new Array ();
poets.push({name:"Angelou", born:"1928"});
poets.push({name:"Blake", born:"1757"});
poets.push({name:"cummings", born:"1894"});
poets.push({name:"Dante", born:"1265"});
poets.push({name:"Wang", born:"701"});

poets.sortOn("born", Array .NUMERIC);
for (var i:int = 0; i < poets.length; ++i) {
    trace(poets[i].name, poets[i].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/


var indices: Array ;
indices = poets.sortOn("born", Array .NUMERIC | Array .RETURNINDEXEDARRAY);
for (var i:int = 0; i < indices.length; ++i) {
    var index:int = indices[i];
    trace(poets[index].name, poets[index].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/
---------------------------------------------------------------------

-----------------------------------------------------------------------
var array 1: Array = ["alpha", "beta"];
var array 2: Array = array 1.concat("gamma", "delta");
trace( array 2); // output: alpha,beta,gamma,delta

var array 3: Array = array 1.concat( array 2);
trace( array 3); // output: alpha,beta,alpha,beta,gamma,delta

var array 4: Array = array 3.slice(2,5);
trace( array 4); // output: alpha,beta,gamma

var rivers: Array = ["Nile", "Amazon", "Yangtze", "Mississippi"];
var riverCSV:String = rivers.toString();
trace(riverCSV); // output: Nile,Amazon,Yangtze,Mississippi
var riverPSV:String = rivers.join("+");
trace(riverPSV); // output: Nile+Amazon+Yangtze+Mississippi

var nested: Array = ["b","c","d"];     
var letters: Array = ["a",nested,"e"];
var joined:String = letters.join("+");
trace(joined); // output: a+b,c,d+e
------------------------------------------------------------------

------------------------------------------------------------------

public dynamic class TypedArray extends Array {
    private const dataType:Class;

    public function TypedArray(...args) {
    }   
   
    AS3 override function concat(...args): Array {
    }
   
    AS3 override function push(...args):uint {
    }
   
    AS3 override function splice(...args) {
    }
   
    AS3 override function unshift(...args):uint {
    }
}   

------------------------------------------------------------------

public dynamic class Array {
    public function Array (...args) {
        var n:uint = args.length
        if (n == 1 && (args[0] is Number))
        {
            var dlen:Number = args[0];
            var ulen:uint = dlen
            if (ulen != dlen)
                throw new RangeError(" Array index is not a 32-bit unsigned integer ("+dlen+")")
            length = ulen;
        }
        else
        {
            length = n;
            for (var i:int=0; i < n; i++) {
                this[i] = args[i]
            }
        }
    }   
}
-------------------------------------------------------------------------------------------------------
public dynamic class TypedArray extends Array {
    private var dataType:Class;
    public function TypedArray(typeParam:Class, ...args) {
        dataType = typeParam;
        var n:uint = args.length
        if (n == 1 && (args[0] is Number))
        {
            var dlen:Number = args[0];
            var ulen:uint = dlen
            if (ulen != dlen)
                throw new RangeError(" Array index is not a 32-bit unsigned integer ("+dlen+")")
            length = ulen;
        }
        else
        {
            for (var i:int=0; i < n; i++) {
                // type check done in push()
                this.push(args[i])
            }
            length = this.length;
        }
    }   
}

-----------------------------------------------------------------------------------------------------  
AS3 override function push(...args):uint {
        for (var i:* in args) {
            if (!(args[i] is dataType)) {
                args.splice(i,1);
            }
        }
        return (super.push.apply(this, args));
    }
-----------------------------------------------------------------------------------------------------   
AS3 override function concat(...args): Array {
        var passArgs:TypedArray = new TypedArray(dataType);
        for (var i:* in args) {
            // type check done in push()
            passArgs.push(args[i]);
        }
        return (super.concat.apply(this, passArgs));
    }
-----------------------------------------------------------------------------------------------------   
AS3 override function splice(...args):* {
        if (args.length > 2) {
            for (var i:int=2; i< args.length; i++) {
                if (!(args[i] is dataType)) {
                    args.splice(i,1);
                }
            }
        }
        return (super.splice.apply(this, args));
    }
-------------------------------------------------------------------------
   AS3 override function unshift(...args):uint {
        for (var i:* in args) {
            if (!(args[i] is dataType)) {
                args.splice(i,1);
            }
        }
        return (super.unshift.apply(this, args));
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
flex布局是一种用于网页布局的弹性盒子模型。它通过设置父元素的display属性为flex来创建一个flex容器,然后通过设置各种flex属性来控制子元素的布局方式。以下是flex布局的一些常用属性: 1. flex-direction:用于设置主轴的方向,可以是row(水平方向)、row-reverse(水平方向相反)、column(垂直方向)或column-reverse(垂直方向相反)。 2. justify-content:用于设置主轴上的子元素排列方式,可以是flex-start(起始端对齐)、flex-end(结束端对齐)、center(居中对齐)、space-between(两端对齐,子元素之间间距相等)或space-around(子元素两侧间距相等)。 3. flex-wrap:用于设置子元素是否换行,可以是nowrap(不换行,子元素在一行显示)、wrap(换行,多余的子元素移到下一行)或wrap-reverse(换行,子元素从下一行开始排列,倒序显示)。 4. align-content:用于设置侧轴上的子元素的排列方式,仅在有多行子元素时生效,可以是flex-start(起始端对齐)、flex-end(结束端对齐)、center(居中对齐)、space-between(两端对齐,子元素之间间距相等)、space-around(子元素两侧间距相等)或stretch(拉伸以填满容器的高度)。 5. align-items:用于设置侧轴上的子元素的排列方式,仅在单行子元素时生效,可以是flex-start(起始端对齐)、flex-end(结束端对齐)、center(居中对齐)、baseline(基线对齐)或stretch(拉伸以填满容器的高度)。 6. flex-flow:是flex-direction和flex-wrap属性的复合属性,用于同时设置主轴方向和子元素换行方式。 此外,还有一些用于控制子元素的属性,如flex属性用于设置子元素的伸缩比例,align-self属性用于控制子元素自身在侧轴上的排列方式,order属性定义子元素的排列顺序等。 总结来说,使用flex布局可以通过设置父元素的display为flex和各种flex属性来灵活地控制子元素的布局。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值