Actionscript 3 将鼠标事件转换为碰撞as3

Actionscript 3 将鼠标事件转换为碰撞as3,actionscript-3,flash,mouse,collision,Actionscript 3,Flash,Mouse,Collision,您好,我正在尝试将此as3代码转换为冲突事件,这是一个鼠标事件代码。很抱歉,但我不知道在代码中的何处放置另一个实例名为mcBall的对象 tile1.addEventListener(MouseEvent.CLICK, tileClick); function tileClick(e:MouseEvent):void { MovieClip(e.currentTarget).gotoAndStop(2); if(tile1.currentFrame == 1) return; goto

您好,我正在尝试将此as3代码转换为冲突事件,这是一个鼠标事件代码。很抱歉,但我不知道在代码中的何处放置另一个实例名为mcBall的对象

tile1.addEventListener(MouseEvent.CLICK, tileClick);


function tileClick(e:MouseEvent):void {

MovieClip(e.currentTarget).gotoAndStop(2);
if(tile1.currentFrame == 1) return;


gotoAndStop(5);
} 
谢谢。

好的,开始工作了

首先,我让层“动作”和“继续”运行所有5帧,并将“mcaddle”和“ball”复制到(第5帧)上的层1(关键帧)

在您的操作层上,我在代码的顶部添加了这个

var BricksRemoved=int(0);
var newBricksRemoved=BricksRemoved;

function RemoveBrick(e:Event=null):void{
    newBricksRemoved=newBricksRemoved+1;
    if(newBricksRemoved==2)
        {gotoAndStop(5)}
    }

function TraceBricksRemoved(e:Event=null):void{
    trace(newBricksRemoved);
    }
并在砖块2的第2帧中添加了以下代码:

    Object(root).RemoveBrick();
    Object(root).TraceBricksRemoved();
    Object(root).Cont.removeChild(this.tile2);
在砖块4,框架2,我补充道

    Object(root).RemoveBrick();
    Object(root).TraceBricksRemoved();
    Object(root).Cont.removeChild(this.tile1);

万一我忘了什么,我会把源代码上传到我的服务器上:

不清楚你想要实现什么,你能详细说明一下吗?另外,请注意,这一行永远不会执行:if(tile1.currentFrame==1)return;。CurrentFrame将始终为2(您正在调用其上方的gotoAndStop(2))。当磁贴击中球,然后清除磁贴时,我尝试转到磁贴mc内的第2帧(在第2帧上有(visible=false命令)转到主时间轴上的第5帧。这是一个鼠标事件的工作示例,因此我尝试在碰撞时执行此操作。谢谢。这是一种不同的方法,我认为这会使问题复杂化,并且不确定它将如何工作。代码必须位于名为“Cont”的容器mc中,并且当瓷砖(2个或更多)移动时击球应该进入主时间线的第5帧。这就是我努力实现的目标(已经一个月了)。这是文件:。ThanksOK开始工作并更新了上面的答案。希望这有帮助。非常感谢。它不适用于cs6。我收到2007错误。参数对象必须为非空。tile1和2中的函数detectplayer存在问题,用于检测球。我是否应该删除该函数使用事件监听器?有没有办法将您在主时间线上添加的代码放入Cont mc?我可能不应该忽略此错误,但是在这种情况下,我只是忽略了2007年的错误。这不会阻止您发布SWF并在flash中测试,而不会出现恼人的“错误”"“继续”等。我只是使用“CTRL+ENTER”而不是“CTRL+SHIFT+ENTER”。发布SWF&您将看到所有操作都正常。非常感谢您尝试帮助我。我将无法使用它,因为我计划添加许多内容,并且我不希望每次球碰到瓷砖时都看到此错误,我没有正确地问这个问题。仍然必须有一种方法可以做到不出错。我将专门针对碰撞发布另一个问题。