我知道如何在as3中设置深度--但在as2中,我可以用数字开始多个“深度点”--在as3中,我所能做的似乎就是将这个对象设置为比那个对象更高/更低的深度。问题是(当处理一堆等角框时,用户可以按任何顺序放置在网格上),我不想处理增加的复杂性,即让每个元素都知道其他元素的位置,然后进行适当的调整。
我正在尝试做的是设置6个总深度数字/位置,在6x6网格中每列一个。因此,第1列中的任何内容都将从500开始深度放置,第2列中的任何内容都将从1000开始,第3列将从1500开始,以此类推。
这样一来,当我把一个对象放在特定的列上时,它就会把自己藏起来,或者把自己放在其他列中所有周围的项目之上,这对我来说要比以某种方式弄清楚15个不同大小的框在哪里,它们之间是如何关联的,然后找出它们需要进入的深度顺序要容易得多。
有什么想法吗?as3似乎已经移除了为特定数字设置深度的功能:p
发布于 2011-10-01 00:50:18
该方法可以简化。你基本上想要创建3个“容器”剪辑,并按顺序添加它们。最后添加的是最上面的。
额外的好处:如果你想重新排列,你可以在任何剪辑上调用addChild() (即使是已经添加的剪辑),这个剪辑将转到顶部。
//// 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);https://stackoverflow.com/questions/7612866
复制相似问题