AS3: Maus-Klick-Ereignis nicht funktioniert
Hintergrund:
Versucht zu machen, ein einfaches "drop the ball" - Spiel.
Den code befindet sich im ersten frame der Zeitleiste. Nichts mehr ist auf der Bühne.
Problem:
Mit QuickBox2D habe ich ein einfaches If-Anweisung, die Tropfen-und Objekt-entsprechend der Maus-x-position:
if (MouseEvent.CLICK) {
sim.addCircle({x:mouseX, y:1, radius:0.25, density:5});
Ich importierte die MouseEvent-Bibliothek:
import flash.events.MouseEvent;
Passiert nichts wenn ich darauf klicke, kein Fehler bei der Ausgabe entweder.
In Aktion sehen:
http://gabrielmeono.com/download/Lucky_Hit_Alpha.swf
http://gabrielmeono.com/download/Lucky_Hit_Alpha.fla
Vollständige Code:
[SWF(width = 350, height = 600, frameRate = 60)]
import com.actionsnippet.qbox.*;
import flash.events.MouseEvent;
var sim:QuickBox2D = new QuickBox2D(this);
sim.createStageWalls();
//var ball:sim.addCircle({x:mouseX, y:1, radius:0.25, density:5}); //
//make a heavy circle
sim.addCircle({x:3, y:1, radius:0.25, density:5});
sim.addCircle({x:2, y:1, radius:0.25, density:5});
sim.addCircle({x:4, y:1, radius:0.25, density:5});
sim.addCircle({x:5, y:1, radius:0.25, density:5});
sim.addCircle({x:6, y:1, radius:0.25, density:5});
//create a few platforms
sim.addBox({x:3, y:2, width:4, height:0.2, density:0, angle:0.1});
//make 26 dominoes
for (var i:int = 0; i<7; i++){
//End
sim.addCircle({x:1 + i * 1.5, y:16, radius:0.1, density:0});
sim.addCircle({x:2 + i * 1.5, y:15, radius:0.1, density:0});
//Mid end
sim.addCircle({x:0 + i * 2, y:14, radius:0.1, density:0});
sim.addCircle({x:0 + i * 2, y:13, radius:0.1, density:0});
sim.addCircle({x:0 + i * 2, y:12, radius:0.1, density:0});
sim.addCircle({x:0 + i * 2, y:11, radius:0.1, density:0});
sim.addCircle({x:0 + i * 2, y:10, radius:0.1, density:0});
//Middle Start
sim.addCircle({x:0 + i * 1.5, y:09, radius:0.1, density:0});
sim.addCircle({x:1 + i * 1.5, y:08, radius:0.1, density:0});
sim.addCircle({x:0 + i * 1.5, y:07, radius:0.1, density:0});
sim.addCircle({x:1 + i * 1.5, y:06, radius:0.1, density:0});
}
if (MouseEvent.CLICK) {
sim.addCircle({x:mouseX, y:1, radius:0.25, density:5});
sim.start();
/*sim.mouseDrag();*/
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist, da hörst du auf die Maus klicken Sie auf falsch.
Statt
Müssen Sie tun
Wenn Sie nicht brauchen, zu hören, für mehr Klicks, tun
Entfernen Sie den Ereignis-listener (für das freigeben von Speicher)
Sollten Sie die Maus-event-listener:
Vergessen Sie nicht, entfernen Sie den Ereignis-listener, wenn Sie nicht mehr benötigen, zu Kreisen hinzufügen. Es ist am besten Praxis bei der Arbeit mit den Zuhörern (es geht um memory management):
Müssen Sie fügen Sie einen Ereignis-listener für Mausereignisse: