Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Actionscript 3 八哥羽毛tilerow可点击_Actionscript 3_Starling Framework - Fatal编程技术网

Actionscript 3 八哥羽毛tilerow可点击

Actionscript 3 八哥羽毛tilerow可点击,actionscript-3,starling-framework,Actionscript 3,Starling Framework,我正在制作一个基于tileRow布局的数据视图,我将有3-5列 col1 col2 col3 col4 --------------------------------------- row1-1 row1-2 row1-3 row1-4 row2-1 row2-2 row2-3 row2-4 等 目前,我已将其设置为使用for循环来创建项目,并将每个项目的宽度设置为容器总大小的1/4,这非常有效,用4个四边形填充整行,因此布局如下: col1

我正在制作一个基于tileRow布局的数据视图,我将有3-5列

col1     col2     col3     col4
---------------------------------------
row1-1   row1-2   row1-3   row1-4
row2-1   row2-2   row2-3   row2-4

目前,我已将其设置为使用for循环来创建项目,并将每个项目的宽度设置为容器总大小的1/4,这非常有效,用4个四边形填充整行,因此布局如下:

col1    col2    col3    col4
---------------------------------------
tile1   tile2   tile3   tile4
tile5   tile6   tile7   tile8
我想添加一个事件侦听器,以便在单击行时触发函数。我假设我不能真正做到这一点,因为每一行由4个独立的瓷砖组成

有没有更好的方法来达到预期的效果,或者我应该只添加第五列,并添加一个可点击的按钮


我不能真正使用列表,因为我需要多个列。

我将创建一个表示行的新精灵。
从池中获取rowSprite,并将每行的项目添加到其中。然后,您可以在该行上放置一个单击处理程序,并获取事件的currentTarget的子级。

我将创建一个表示一行的新精灵。
从池中获取rowSprite,并将每行的项目添加到其中。然后您可以在行上放置一个单击处理程序,并获取事件的currentTarget的子级。

我真的不认为将单击处理程序添加到行中的元素有什么问题吗?您是否担心列/分幅之间的间隙不可单击?或者您关心的是为每行注册4个单击处理程序吗?我想我关心的是如何通过单击任一个tile将tile1、tile2、tile3和tile4(在本例中)传递给处理程序。如果有100行,每个行都有一个按钮,那么会有性能问题吗?当然不一定是处理程序本身的问题,如果您不熟悉对象池或flex world项目渲染器循环,那么您可能希望使用或实现类似的东西。您应该能够提前修改数据,以便通过查看当前分配给“DisplayObject”的数据(不管它在Starling中是什么),从这些元素中发送的单击能够确定行。性能将是一个与更新位置和其他相关的问题,有这么多行,而不管如何进行列划分。您要做的基本上是计算(理想情况下在运行时的代码中)屏幕上可以容纳多少行,只需创建1或2加1即可,当用户滚动时,您将它们向上滑动,当它们离开屏幕时,您将它们放回可重复使用的渲染器池中,当您需要列表底部的新渲染器时,您只需从可用和随时可用的渲染器池中拉出一个即可。我想Starling对此有所帮助,但不是专家。我真的不认为向行中的元素添加单击处理程序有什么问题?您是否担心列/分幅之间的间隙不可单击?或者您关心的是为每行注册4个单击处理程序吗?我想我关心的是如何通过单击任一个tile将tile1、tile2、tile3和tile4(在本例中)传递给处理程序。如果有100行,每个行都有一个按钮,那么会有性能问题吗?当然不一定是处理程序本身的问题,如果您不熟悉对象池或flex world项目渲染器循环,那么您可能希望使用或实现类似的东西。您应该能够提前修改数据,以便通过查看当前分配给“DisplayObject”的数据(不管它在Starling中是什么),从这些元素中发送的单击能够确定行。性能将是一个与更新位置和其他相关的问题,有这么多行,而不管如何进行列划分。您要做的基本上是计算(理想情况下在运行时的代码中)屏幕上可以容纳多少行,只需创建1或2加1即可,当用户滚动时,您将它们向上滑动,当它们离开屏幕时,您将它们放回可重复使用的渲染器池中,当您需要列表底部的新渲染器时,您只需从可用和随时可用的渲染器池中拉出一个即可。我想Starling在这方面有所帮助,但不是专家。