Pastor Pixel Tipps Tutorial Anleitungen Hilfe

Mausposition mouseX, mouseY

Hier geht es im weitesten Sinne um alles, was mit Mouse, Mauszeiger, Mausposition und Registrierpunkt zu tun hat.
Weitere Links zu verwandten Themen:

Die Mausposition ermittelt man über mouseX und mouseY. Dabei wird die horizontale Mausposition zum Registrierpunkt über mouseX und die vertikale Mausposition zum Registrierpunkg über mouseY zurückgegeben.

stage.mouseX und stage.mouseY ermitteln also die Mausposition zur linken oberen Ecke der Bühne.

Hat man eine Instanz eines MCs oder anderen Displayobjektes kann man den Abstand zur Maus folgendermaßen ermitteln.

myMc.mouseX, myMc.mouseY

 

Die horizontale Mausposition auf der Bühne

 

var myVar:Number;
myMc.addEventListener(Event.ENTER_FRAME,   enterFrameHandler);
function enterFrameHandler(event:Event):void {
myVar = stage.mouseX;
trace(myVar)
}
  

Mausposition relativ zum Mittelpunkt des Movieclips

var myVar:Number;
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(event:Event):void {
myVar = myMc.mouseX;
trace(myVar)
}
  

Mausposition mittels MouseEvent

Alternativ kann man mittels MouseEvent die Mausposition zum Registrierpunkt der Bühne oder zum Registrierpunkt des Objekts, auf das der MouseEvent registriert ist, aufrufen.

Die Eigenschaften sind:
localX, localY
stageX, stageY

import flash.events.MouseEvent;

myMc.addEventListener(MouseEvent.CLICK, tracePos);

function tracePos(evt:MouseEvent):void
{
	trace(evt.localX);//x-Position zum Registrierpunkt myMc
	trace(evt.stageX);//x-Position zum Registrierpunkt der Bühne
}

Alternativer Mauszeiger

Man kann zwar keinen alternativen Mauszeiger aus dem System in Flash darstellen, aber man kann den Mauszeiger unsichtbar machen Mouse.hide() und einen Sprite stattdessen nehmen.

Der Sprite oder MC muss die Eigenschaft altmaus.mouseEnabled = false zugewiesen bekommen, denn sonst läge immer der alternative Mauszeiger unter der Maus und es wäre kein Button anklickbar.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

 

Mouse.hide();
altMouse.mouseEnabled = false;

altMouse.addEventListener(Event.ENTER_FRAME, mouseMovement);

function mouseMovement(evt:Event)
{
	altMouse.x = stage.mouseX;
	altMouse.y = stage.mouseY;
}

globalToLocal(x,y) / localToGlobal()

Mit der Point Klasse lassen sich Punkte definieren, siehe dazu meinen Tipp Point.

Hat man Movieclips ineinander verschachtelt, kann es schon mal vorkommen, dass man die Mausposition aus dem relativen Koordinatensystems des MCs in das globale Koordinatensystem der Bühne umrechnen muss, oder umgekehrt. Hier kommen die beiden Funktionen globalToLocal() und localToGlobal() ins Spiel.

1.) globalToLocal() bedeutet, dass globale Koordinaten, also die Koordinaten der Bühne, in das lokale Koordinatensystem des Movieclips umgerechnet werden.

2.) localToGlobal() Lokale Koordinaten eine Movieclips werden in das globale Koordinatensystem der Hauptbühne umgerechnet.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

 

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

 

import flash.geom.Point;
import flash.events.MouseEvent;


b1.addEventListener(MouseEvent.CLICK, heartToHoly);
b2.addEventListener(MouseEvent.CLICK, holyToHeart);
b3.addEventListener(MouseEvent.CLICK, holyToJesus);

var stgP:Point;

function heartToHoly(evt:MouseEvent):void
{
	//das globale Koordinatensystem, wird in das locale Koordinatensystem gebracht
	stgP = new Point(holy.x,holy.y);
	var targetPoint:Point = jesus.globalToLocal(stgP);
	jesus.heart.x = targetPoint.x;
	jesus.heart.y = targetPoint.y;
}

function holyToHeart(evt:MouseEvent):void
{
	//das locale Koordintatensystem wird in das globale gebracht
	var quellPunkt:Point = new Point(0,0);
	stgP = jesus.heart.localToGlobal(quellPunkt);
	holy.x = stgP.x;
	holy.y = stgP.y;

}

function holyToJesus(evt:MouseEvent):void
{
	//das locale Koordintatensystem wird in das globale gebracht
	var quellPunkt:Point = new Point(0,0);
	stgP = jesus.localToGlobal(quellPunkt);
	holy.x = stgP.x;
	holy.y = stgP.y;
}


getBounds() // getRect()

Eine Movieclip, dessen Inhalt nicht mittig im Registrierpunkt liegt, mittig in einen anderen, (leeren) Movieclip platzieren. Siehe auch den Tipp "Programmierte Bewegung mit Richtungswechsel, nach Wandberührung"

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen