代码之家  ›  专栏  ›  技术社区  ›  Brian Genisio

操作脚本范围?

  •  1
  • Brian Genisio  · 技术社区  · 13 年前

    在我手工实现它之前(简单,我知道),我想知道actionscript或flex支持的范围是什么?

    • 你可以用Ruby来做: 1..101
    • 您可以在.NET中执行此操作: Enumerable.Range(1, 10)

      你能用AS3或flex来做这个吗?我只是不想重新发明轮子。

    3 回复  |  直到 13 年前
        1
  •  3
  •   Juan Pablo Califano    13 年前

    没有,但如果您愿意,可以这样做来模拟语法:

    public class Range {
        public static function get(min:int,max:int):Array {
            var ret:Array = [];
            while(min <= max) {
                ret.push(min++);
            }
            return ret;
        }
    }
    

    然后:

        for each(var i:int in Range.get(1,10)) {
            trace(i);
        }
    
        2
  •  0
  •   JD Isaacks    13 年前

    我不相信它们是用来填充数组的。我查过了 Array , ArrayUtil ArrayCollection 课程。

    我知道 TextInput 类有一个名为 restrict 您可以指定一个范围,例如 0-9 a-Z .

    我还发现这是为了设置一个字符范围: Setting Character Range

    但要填充数组,我认为您可能只需要自己构建一个方法。

        3
  •  0
  •   Chunky Chunk    13 年前

    可以使用数组 筛选器() 方法从原则数组的指定对象范围填充新数组。

    package
    {
    import flash.display.Sprite;
    
    public class Test extends Sprite
        {
        private var minRangeIndex:uint;
        private var maxRangeIndex:uint;
    
        public function Test()
            {
            var myArray:Array = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I");
            minRangeIndex = 1;
            maxRangeIndex = 4;
    
            var rangeArray:Array = myArray.filter(rangeCallback);
    
            for each    (var element:Object in rangeArray)
                        trace(element);
            }
    
        private function rangeCallback(element:Object, index:int, array:Array):Boolean
            {
            return (index >= minRangeIndex && index <= maxRangeIndex);
            }
        }
    }
    
    //traces:  B, C, D, E
    

    使用 筛选器() 方法实际上可以从主体数组中创建一个具有多个范围(例如:1-4和8-12)的数组,以及您想要的任何其他类型的筛选,例如用于搜索的字符串匹配。

    推荐文章