首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AS3中设置多个深度图层

在AS3中设置多个深度图层
EN

Stack Overflow用户
提问于 2011-09-30 23:44:46
回答 1查看 1.1K关注 0票数 0

我知道如何在as3中设置深度--但在as2中,我可以用数字开始多个“深度点”--在as3中,我所能做的似乎就是将这个对象设置为比那个对象更高/更低的深度。问题是(当处理一堆等角框时,用户可以按任何顺序放置在网格上),我不想处理增加的复杂性,即让每个元素都知道其他元素的位置,然后进行适当的调整。

我正在尝试做的是设置6个总深度数字/位置,在6x6网格中每列一个。因此,第1列中的任何内容都将从500开始深度放置,第2列中的任何内容都将从1000开始,第3列将从1500开始,以此类推。

这样一来,当我把一个对象放在特定的列上时,它就会把自己藏起来,或者把自己放在其他列中所有周围的项目之上,这对我来说要比以某种方式弄清楚15个不同大小的框在哪里,它们之间是如何关联的,然后找出它们需要进入的深度顺序要容易得多。

有什么想法吗?as3似乎已经移除了为特定数字设置深度的功能:p

EN

回答 1

Stack Overflow用户

发布于 2011-10-01 00:50:18

该方法可以简化。你基本上想要创建3个“容器”剪辑,并按顺序添加它们。最后添加的是最上面的。

额外的好处:如果你想重新排列,你可以在任何剪辑上调用addChild() (即使是已经添加的剪辑),这个剪辑将转到顶部。

代码语言:javascript
复制
//// IMPORTANT STUFF ////
import flash.display.Sprite;

var top:Sprite = new Sprite;
var mid:Sprite = new Sprite;
var bot:Sprite = new Sprite;

addChild(bot);
addChild(mid);
addChild(top);

//// END IMPORTANT STUFF ////


// Move Stuff so we can visualize how this works.
// Then add some boxes so we can see what's going on.

mid.x = 20;
mid.y = 20;

bot.x = 40;
bot.y = 40;

// Add Top box
var t:Sprite = new Sprite;
t.graphics.beginFill(0xFF0000);
t.graphics.drawRect(0,0,100,100);
top.addChild(t);

// Add Middle box
var m:Sprite = new Sprite;
m.graphics.beginFill(0x00FF00);
m.graphics.drawRect(0,0,100,100);
mid.addChild(m);

// Add Bottom box
var b:Sprite = new Sprite;
b.graphics.beginFill(0x0000FF);
b.graphics.drawRect(0,0,100,100);
bot.addChild(b);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7612866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档