Problem mit Tutorial

Cäptin Pommes

Erfahrenes Mitglied
Hallo,

ich habe aus einem Flash tut hier auf der Seite folgenes:

stop();

anleitung.addEventListener(MouseEvent.CLICK, anleitung_handler);
anleitung.addEventListener(MouseEvent.ROLL_OVER, anleitung_handler);
anleitung.addEventListener(MouseEvent.ROLL_OUT, anleitung_handler);

function anleitung_handler(e)
{
if (e.type=="click")
{
stage.play();
}
else if(e.type=="rollOver")
{
e.currentTarget.gotoAndStop(2)
}
else if (e.type=="rollOut")
{
e.currentTarget.gotoAndStop(1)
}
}

jetzt kommt aber nen Compiler-Fehler wo drin steht :
1061: Aufruf für eine möglicherweise nicht definierte Methode play über einen Verweis mit statischem Typ flash.display:Stage.

Quelle: stage.play();

also ich konnte jetzt nicht festellen das ich was falsch abgeschrieben hatte, weiss jemand vieleicht was das sein könnte?
 
Ja - das stage muss weg. Dachte eigentlich, dass ich das schon rauskorrigiert hatte, werd ich jetzt sofort nachholen.
 
Na es gibt für die stage keine Methode play().
Aus welchem Tutorial hast du das denn?
Soll es nicht
PHP:
 e.target.play();
oder
PHP:
this.play()
heißen?
 
hmm ok danke jetzt funktioniert es :) aber ne frage hab ich da noch
ich hab das jetzt mit nur play(); ausprobiert und mit this.play(); und e.target.play();
und alles hat funktioniert und jetzt frag ich mich wieso den alle 3 sachen funktionieren bzw. was macht das für nen sinn? wo sind die unterschiede dieser befehle?
 
Achte bitte hier im Forum auf die Nettíquette, also vor allem auf Groß- und Kleinschreibung.

Naja - mit dem Ding vor play() gibt man ja nur an, welches Objekt abgespielt werden soll. In diesem Fall zeigt this auf die Hauptbühne. Dort steht auch der Code, sodass auch ohne eine Pfadangabe die Hauptbühne genommen wird.
 
Zuletzt bearbeitet:
In diesem Fall zeigen nunmal sowohl this als auch e.target auf die Hauptbühne.

Nach dem Code:
PHP:
anleitung.addEventListener(MouseEvent.CLICK, anleitung_handler);

zeigt e.target auf das Object 'anleitung' und nicht auf die stage.

anleitung.addEventListener(MouseEvent.CLICK, anleitung_handler);
anleitung.addEventListener(MouseEvent.ROLL_OVER, anleitung_handler);
anleitung.addEventListener(MouseEvent.ROLL_OUT, anleitung_handler);

function anleitung_handler(e) {
if (e.type==MouseEvent.CLICK) {
e.target.play();
} else if (e.type==MouseEvent.ROLL_OVER) {
e.currentTarget.gotoAndStop(2);
} else if (e.type==MouseEvent.ROLL_OUT) {
e.currentTarget.gotoAndStop(1);
}
e.target == stage ? trace("TARGET IS STAGE") : trace("TARGET IS ANLEITUNG");// TARGET IS ANLEITUNG
}
 
Zuletzt bearbeitet:
Du hast schon feierabend? Du hast es gut :)

Tipp: Besser ist es die events über die statische Konstante anzusprechen , also
e.type==MouseEvent.CLICK stat 'click'
 
Zuletzt bearbeitet:
kk danke für die Antworten, klappt auf jeden fall jetzt :)

Tipp: Besser ist es die events über die statische Konstante anzusprechen , also
e.type==MouseEvent.CLICK stat 'click'

Ok und wieso ist das besser? ^^ (sry aber sowas muss ich immer Wissen sonst versteh ich den Sinn nicht und wende es nicht an :) )


So ich bin jetzt nen Stück weiter im Tutorial und das Raumschiff bewegt sich nun auch schon in alle Richtungen :) Aber nich so "flüssig" wie man es halt aus solchen Spielen kennt.
folgender code:
PHP:
stop();

var speed:int = 10;

stage.addEventListener(KeyboardEvent.KEY_DOWN, raumschiff_handler);

function raumschiff_handler(e)
{
	if (e.keyCode==Keyboard.UP && raumschiff.y > 450)
	{
		raumschiff.y -= speed;
	}
	else if (e.keyCode==Keyboard.DOWN && raumschiff.y < 666.9)
	{
		raumschiff.y += speed;
	}
	else if (e.keyCode==Keyboard.RIGHT && raumschiff.x < 450)
	{
		raumschiff.x += speed;
	}
	else if (e.keyCode==Keyboard.LEFT && raumschiff.x > 50)
	{
		raumschiff.x -= speed;
	}
	
}

Was könnte man jetzt ändern damit das Raumschiff halt flüssig Fliegt und wenn es Schräg fliegen könnte währe ja eigentlich auch geil xD ^^ ja wie würde man das realisieren?
 

Neue Beiträge

Zurück