Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在Flex中创建类型安全集合_Apache Flex_Collections - Fatal编程技术网

Apache flex 在Flex中创建类型安全集合

Apache flex 在Flex中创建类型安全集合,apache-flex,collections,Apache Flex,Collections,我试图在Flex中创建一个集合类,该类仅限于容纳我正在使用的特定类型的数据(接口)。我选择不扩展ArrayCollection类,因为它太通用了,不能真正提供我所追求的编译时安全性。在它的简单形式中,我的集合包含一个数组,我管理如何添加和删除对象,等等 我真正想做的是在for each循环中使用这些集合。它显然不像c语言那样直截了当,在c语言中只实现IEnumerable和IEnumerator(或者只使用泛型集合)。有没有办法在动作脚本中做到这一点,如果有,还有关于如何实现的信息 干杯看一看。

我试图在Flex中创建一个集合类,该类仅限于容纳我正在使用的特定类型的数据(接口)。我选择不扩展ArrayCollection类,因为它太通用了,不能真正提供我所追求的编译时安全性。在它的简单形式中,我的集合包含一个数组,我管理如何添加和删除对象,等等

我真正想做的是在for each循环中使用这些集合。它显然不像c语言那样直截了当,在c语言中只实现IEnumerable和IEnumerator(或者只使用泛型集合)。有没有办法在动作脚本中做到这一点,如果有,还有关于如何实现的信息

干杯

看一看。对于Flex中的类型化集合来说,这差不多是最好的了(从4开始)。但是,您需要实现自己的类。一种方法似乎是使用


另外,看看SO post。

您需要扩展Flash代理类。扩展代理允许您更改“get”和“set”的工作方式,以及“for..in”和“for..each”循环。你可以找到更多的细节

以下是您的问题的一个示例:

package
{
    import flash.utils.Proxy;
    import flash.utils.flash_proxy;

    public class EnumerableColl extends Proxy
    {
        private var _coll:Array;

        public function EnumerableColl()
        {
            super();
            _coll = [ 'test1', 'test2', 'test3' ];
        }

        override flash_proxy function nextNameIndex( index:int ):int
        {
            if ( index >= _coll.length ) return 0;
            return index + 1;
        } 


        override flash_proxy function nextValue( index:int ):*
        {
            return _coll[ index - 1];
        }

    }
}

是的,我正在为flash 9编程,所以我不能使用矢量对象。必须有一种方法在flex中实现某种迭代器模式,因为ListCollectionView类可以用于每个循环中。当然,看看Brian Heylin对他自己问题的回答。还有Vector。只要你的目标是Flash 10,Flex 3就可以使用。很好。。。正是我想要的,为你们俩干杯