gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:40:12 31 4
gpt4 key购买 nike

背景:试图让一个球出现在鼠标所在的相同位置。使用 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com