Flash as3.0 movieClip层级问题 怎么按影片剪辑Y轴坐标设置层级?

如:我想制作基于2.5D的闯关格斗游戏.游戏中敌人的层级怎么设置呢.敌人可是随机移动的.该如何设置数组排序??setChildIndex(MC,MC.y);行不通啊!!... 如:我想制作基于2.5D的闯关格斗游戏.游戏中敌人的层级怎么设置呢.敌人可是随机移动的.该如何设置数组排序?? setChildIndex(MC,MC.y);行不通啊!! 展开
 我来答
zb6306
2013-04-24 · TA获得超过777个赞
知道大有可为答主
回答量:2585
采纳率:66%
帮助的人:1162万
展开全部
可以用数组排序的方法。数组有个sortOn () 方法,以下是它的详细使用方法:
根据数组中的一个或多个字段对数组中的元素进行排序。 数组应具有下列特性: 该数组是索引数组,不是关联数组。
该数组的每个元素都包含一个具有一个或多个属性的对象。
所有这些对象都至少有一个公用属性,该属性的值可用于对该数组进行排序。 这样的属性称为 field。如果您传递多个 fieldName 参数,则第一个字段表示主排序字段,第二个字段表示下一个排序字段,依此类推。 Flash 根据
Unicode 值排序。 (ASCII 是 Unicode 的一个子集。) 如果所比较的两个元素中均不包含 fieldName
参数中指定的字段,则认为将该字段设置为 undefined,在排序后的数组中将连续放置这些元素,不必遵循任何特定顺序。默认情况下,Array。sortOn() 按以下方式进行排序:排序区分大小写(Z 优先于 a)。
按升序排序(a 优先于 b)。
修改该数组以反映排序顺序;在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素。
数值字段按字符串方式进行排序,因此 100 优先于 99,因为 "1" 的字符串值比 "9" 的低。Flash Player 7 添加了 options 参数,您可以使用该参数覆盖默认排序行为。
若要对简单数组(例如,仅具有一个字段的数组)进行排序,或要指定一种 options 参数不支持的排序顺序,请使用
Array.sort()。若要传递多个标志,请使用按位“或”(|) 运算符分隔它们: my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Flash Player 8 添加了按多个字段进行排序时为每个字段指定不同的排序选项的功能。 在 Flash Player 8
和更高版本中,options 参数接受排序选项的数组,以便每个排序选项对应于 fieldName
参数中的一个排序字段。 下例使用降序排序对主排序字段 a 排序,使用数字排序对第二个排序字段 b
排序,使用不区分大小写的排序对第三个排序字段 c 排序: Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
注意:fieldName 和 options 数组必须具有相同数量的元素;否则,将忽略
options 数组。 此外,Array.UNIQUESORT 和
Array.RETURNINDEXEDARRAY 选项只能用作数组中的第一个元素;否则,将忽略它们。
使用这个方法,你就可以利用对象的y坐标属性值对对象进行排序,可以是升序也可以是降序,这就根据你的具体需要去写脚本了。
最后祝你成功。
局势君
2013-04-24 · 知道合伙人教育行家
局势君
知道合伙人教育行家
采纳数:409 获赞数:466

向TA提问 私信TA
展开全部
as3中所有的元件在容器内有先后顺序的。
游戏场景一般要对所有的角色进行深度排序,y较大的在上面,y较小的在下面。每次有一个角色出现时都要进行一次排序操作,就可以了。
至于如何排序,你了解一下addChildAt,getChildIndex类似几个方法的用法。
追问
那敌人移动到上面时不是有“踩头”现象了么?
追答
所以你要深度交换啊。“踩头”说明你把敌人没换到后面去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式