actionscript-3 - AS3 > 鼠标事件没有发生?

标签 actionscript-3 mouseevent box2d

背景:试图让一个球出现在鼠标所在的相同位置。使用 Box2D 库。处理类文件 (.as)

问题:鼠标事件不起作用(我点击但没有任何反应)。没有任何输出错误。 :(

鼠标事件 编辑:Marty Wallace 更正了我的代码,但鼠标事件仍然不起作用。

   private function _clicked(e:MouseEvent)
            {
                sim.addCircle({x:mouseX, y:mouseY, radius:0.25, density:5});
                sim.start();  

完整代码:

package  {

    import flash.display.MovieClip;
    import com.actionsnippet.qbox.*;  
    import flash.events.MouseEvent;

    [SWF(width = 350, height = 600, frameRate = 60)]  

    public class MouseTest extends MovieClip {

        public var sim:QuickBox2D;

        /**
         * Constructor
         */
        public function MouseTest()
        {
            sim = new QuickBox2D(this);  
            sim.createStageWalls();

            addEventListener(MouseEvent.CLICK, _clicked);
        }

        /**
         * ..
         * @param e MouseEvent.CLICK
         */
        private function _clicked(e:MouseEvent)
        {
            sim.addCircle({x:mouseX, y:mouseY, radius:0.25, density:5});
            sim.start();  

        }
    }

}

最佳答案

由 Gabriel Meono 编辑:

QuickBOX2D uses meters instead of pixels. To work with pixels with this library, one must divide each number by 30. I simply added a "/3" to the mouseX / mouseY and it worked! I updated your code, thanks!

要么这样做(推荐):

public var sim:QuickBox2D;

/**
 * Constructor
 */
public function MouseTest()
{
    sim = new QuickBox2D(this);  
    sim.createStageWalls();

    addEventListener(MouseEvent.CLICK, _clicked);
}

/**
 * ..
 * @param e MouseEvent.CLICK
 */
private function _clicked(e:MouseEvent)
{
    sim.addCircle({x:(mouseX/30), y:(mouseY/30), density:5});
    sim.start();  
}

或者这个(不那么推荐,但更接近你的代码):

/**
 * Constructor
 */
public function MouseTest()
{
    var sim:QuickBox2D = new QuickBox2D(this);  
    sim.createStageWalls();

    addEventListener(
        MouseEvent.CLICK,
        function(e:MouseEvent):void
        {
            sim.addCircle({x:(mouseX/30), y:(mouseY/30), radius:0.25, density:5});
            sim.start();
        }
    );
}

关于actionscript-3 - AS3 > 鼠标事件没有发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348718/

相关文章:

javascript - 动态内容鼠标悬停

android - CCSprite 不是 NULL。但无法访问属性。

performance - Box2d raycast 与 AABB 查询性能

java - 获取相同类型的物体 - 三消风格游戏

flash - ActionScript 3 'this' 问题

actionscript-3 - Adobe Air - 分析

qt - 如何检查鼠标是否真的离开了QWidget?

c# - "Cannot convert string to ImageSource."我该怎么做?

actionscript-3 - 来自套接字的AS3/AIR readObject()-如何检查已接收到的所有数据?

flash - Actionscript 3 : How can I get the symbol name, 而不是实例名称