我有一个简单的功能,当你点击一个按钮时,将一个影片剪辑添加到舞台上的随机x和y位置.我遇到的问题是新的电影剪辑最终掩盖了按钮.我试图将新创建的mc的z-index更改为低于按钮的z-index,但这并不能解决问题.如何阻止新的mc覆盖已经存在的元素.
friends1_btn.addEventListener(MouseEvent.CLICK, friendMaker);
function friendMaker(evt:MouseEvent):void {
var newFriend:Teddy = new Teddy();
newFriend.x = Math.random()*stage.width;
newFriend.y = Math.random()*stage.height;
newFriend.z = 0;
stage.addChild(newFriend);
}
Run Code Online (Sandbox Code Playgroud)
小智 12
或者 - 或者更多使用longterm - 不要将所有添加的对象作为与按钮相同的图层的子对象.
所以代替:
stage
|
+--- object 1
|
+--- object 2
|
+--- button
|
+--- object 3
Run Code Online (Sandbox Code Playgroud)
有:
stage
|
+--- object layer
| |
| +--- object 1
| |
| +--- object 2
|
+--- button
Run Code Online (Sandbox Code Playgroud)
甚至:
stage
|
+--- object layer
| |
| +--- object 1
| |
| +--- object 2
|
+--- button layer
|
+--- button
Run Code Online (Sandbox Code Playgroud)
在哪里object layer,button layer可能只是Sprite对象,即:
var objectLayer:Sprite=new Sprite();
var buttonLayer:Sprite=new Sprite();
stage.addChild(objectLayer);
stage.addChild(buttonLayer);
buttonLayer.addChild(myButton);
Run Code Online (Sandbox Code Playgroud)
等等.
我认为你会发现长期思考这种方式更有用,而不仅仅是改变z指数.
顺便提一下,更新的Flash Player 10 确实有一个.z属性(即使它不在文档中) - 正如Reuben所说,它用于新的3D变换.遗憾的是,3D变换对z排序或z分层没有任何支持,所以在这种情况下没有帮助.