#12003/8/5 11:43:50
只是想为多媒体的发展尽一份力。以下是翻译director online 上的一篇关于locz的文章,觉得简单有用,所以给大家共享。动机单纯。-------alalala
提问
我刚使用d8并且我正在做我的第一个项目。基本上是一个拖动的七巧板游戏。无论如何,当这些部分被打乱,你要拖动的时候,有些部分就被遮挡了。我希望当鼠标点击的时候,这部分能自动的移到前面来。看起来并不是很难完成,但是对我来说是最难的部分,请帮帮我。
回答
这儿有几种方法来解决你所说的问题。第一种方式是动态的改变演员所在的通道级数,也就是改变演员的z坐标。我写了一片关于它的文章,叫dynamic sprite re-ordering----这确实有一点用词不当,因为精灵并没有从新排列,而是演员。
(省略一部分)
director渲染舞台的时候,从1通道开始直到最高的通道,你可以给它一些特殊的指令。这有一个特殊的通道属性叫做locz,它允许你设置渲染通道的层数。数值越大,它就越在上面。
那么,这儿便是可指定给你的七巧板元素的行为,它可使鼠标点击的元素到舞台的最上面。。。还有在鼠标抬起的时候返回到原有通道。
property pSprite
on beginSprite me
pSprite = sprite(me.spriteNum)
end beginSprite
on mouseDown me
pSprite.locZ = 500
end mouseDown
on mouseUp me
pSprite.locZ = me.spriteNum
end mouseUp
on mouseUpOutside me
mouseUp me
end mouseUpOutside
所有的行为是在鼠标点击的时候改变精灵的locz。在这个例子里我使用了一个虚拟的通道500,其实你可以使用任何高于你现有通道数的数值。只是为了好玩,我想核实一下如果我是用0或是负数会发生什么。结果,精灵跑到了舞台后面。
祝你好运!