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 mobile]关于放置自定义组件的多个实例_Apache Flex_Memory_Components - Fatal编程技术网

Apache flex [Flex mobile]关于放置自定义组件的多个实例

Apache flex [Flex mobile]关于放置自定义组件的多个实例,apache-flex,memory,components,Apache Flex,Memory,Components,现在,我的应用程序开发正处于优化阶段。我在添加我的一个组件时遇到了一个问题:PlayerInfo,它是从组中扩展而来的,其中有一些标签和图像,我必须创建60个组件,并将我的全部放入一个HGroup。但在将它们添加到hgroup的过程中,我的应用程序只是在几秒钟内停止响应,这是不可容忍的。我可以用更少的内存使用来实现这一点吗 我读过这一页,想我是否可以用我的任何组件,而不仅仅是位图来完成它。有人知道怎么做吗 我是这样做的: class PlayerInfo extends Group{ priv

现在,我的应用程序开发正处于优化阶段。我在添加我的一个组件时遇到了一个问题:PlayerInfo,它是从组中扩展而来的,其中有一些标签和图像,我必须创建60个组件,并将我的全部放入一个HGroup。但在将它们添加到hgroup的过程中,我的应用程序只是在几秒钟内停止响应,这是不可容忍的。我可以用更少的内存使用来实现这一点吗

我读过这一页,想我是否可以用我的任何组件,而不仅仅是位图来完成它。有人知道怎么做吗

我是这样做的:

class PlayerInfo extends Group{
 private var name:Label;
 private var age:Label;
 private var photo:Image;   
}

在我的列表课上:

public function addPlayers(arrPlayer:Array):void{
for(;;){
   var player:PlayerInfo=new PlayerInfo();
   HGroup.addElement(player);
}
}

对!!以你目前的方式;如果您有60个组件实例,那么应用程序将创建60个组件实例,并将它们全部呈现在屏幕上;即使它们当前不是视图区域

正如@RiaStar所建议的,您应该使用一个类,例如列表或数据组。您的自定义组件PlayerInfo应用作itemRenderer,您从中创建这些组件的“列表”应成为列表的数据提供程序

一旦你这样做了,你的应用程序将利用列表的渲染器。因此,只有屏幕上显示的视觉元素才会显示给用户。所以,若你们有60个列表中的10个项目显示在屏幕上;该应用程序将少生成50个项目。这将更好地利用处理能力和设备内存

要将类更改为渲染器,必须实现dataChange()事件处理程序,以便在列表更改渲染器应显示的数据时,组件都会更新


我认为我们没有足够的信息来得到更详细的解释。你的数据提供者是什么?需要在自定义组件上设置哪些属性

最好将
列表
与您的
播放器信息
一起用作自定义项目渲染器。它优化为仅在渲染器可见时实例化渲染器。您的方法将一次创建它们。如果你不需要列表功能,你可以使用更轻量级的
数据组
(虽然我不确定这在移动设备上的表现)。我自学了flex。我认为我有资格编写一个应用程序,但现在看来我还有很多需要改进的地方,谢谢你的回答。非常感谢你的回答Rebog:D,虽然我还没有时间测试这个,但我认为它会起作用,再次感谢你。
Can I achieve this with less memory usage?