flash as3小游戏问题(高手请进!)
package{importflash.display.MovieClip;importflash.events.MouseEvent;publicclassddexte...
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class dd extends MovieClip
{
public function dd()
{
this.addEventListener(MouseEvent.CLICK,sjhs);
}
public function sjhs(e)
{
this.visible=false;
}
}
}
以上是我的代码。文件是dd.as,舞台上有五个没有名字的小球,链接了dd。我想在逐个点击之后,trace出“清除完毕”的提示。但我却不知如何判断小球已经全部消失。哪位高手帮我一下?我会加分的。 展开
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class dd extends MovieClip
{
public function dd()
{
this.addEventListener(MouseEvent.CLICK,sjhs);
}
public function sjhs(e)
{
this.visible=false;
}
}
}
以上是我的代码。文件是dd.as,舞台上有五个没有名字的小球,链接了dd。我想在逐个点击之后,trace出“清除完毕”的提示。但我却不知如何判断小球已经全部消失。哪位高手帮我一下?我会加分的。 展开
3个回答
展开全部
你的这个dd.as代码并没有清除功能呀,只是注册了点击变为不可见,并没有从显示列表中清除。
visible=false只是看不见,并不是没有。要想清除显示列表里的对像要使用removeChild()所以把this.visible=false这一行改成下面的代码
MovieClip(root).removeChild(this)
你还要求清除完了trace(“清除完毕”),那就要另外写一个侦听函数放在你的文档类里,或者时间轴上,代码如下
stage.addEventListener(Event.ENTER_FRAME,go)
function go(E:Event){
if(this.numChildren==0){
trace("清除完毕")
stage.removeEventListener(Event.ENTER_FRAME,go)
}
}
visible=false只是看不见,并不是没有。要想清除显示列表里的对像要使用removeChild()所以把this.visible=false这一行改成下面的代码
MovieClip(root).removeChild(this)
你还要求清除完了trace(“清除完毕”),那就要另外写一个侦听函数放在你的文档类里,或者时间轴上,代码如下
stage.addEventListener(Event.ENTER_FRAME,go)
function go(E:Event){
if(this.numChildren==0){
trace("清除完毕")
stage.removeEventListener(Event.ENTER_FRAME,go)
}
}
展开全部
这些dd的parent上注册个鼠标点击函数 假设这个parent为p
p.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e:MouseEvent):void{
var sp:dd
for (var i:int = 0; i < p.numChildren; i++)
{
sp = getChildAt(i) as dd;
if (sp != null && sp.visible) return;
}
p.removeEventListener(MouseEvent.CLICK,clickHandler);
trace("清除完毕");
}
p.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e:MouseEvent):void{
var sp:dd
for (var i:int = 0; i < p.numChildren; i++)
{
sp = getChildAt(i) as dd;
if (sp != null && sp.visible) return;
}
p.removeEventListener(MouseEvent.CLICK,clickHandler);
trace("清除完毕");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-12
展开全部
在主场景加
addEventListener(MouseEvent.CLICK,onClick_func);
function onClick_func(_evt:MouseEvent):void{
if(numChildren == 0){
trace("清除完成");
}
}
具体判断需要根据你的场景情况做修改,我此处只是提示 numChildren属性的使用
addEventListener(MouseEvent.CLICK,onClick_func);
function onClick_func(_evt:MouseEvent):void{
if(numChildren == 0){
trace("清除完成");
}
}
具体判断需要根据你的场景情况做修改,我此处只是提示 numChildren属性的使用
更多追问追答
追问
我照着做了。但消完了还不提示。这怎么回事?
追答
我已经说过了,要具体情况看你的场景,我只是提示使用numChildren属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询