• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-02-2009, 02:04   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2009
Beiträge: 17
Question AS3: Child oder nicht Child....

Hallo!

Bin ein ziemlich neuer Flasher und habe ein Problem wobei ich hoffe es richtig schildern zu könnne.

Ich zeichne ein Sprite so:
var rahm:Sprite = new Sprite();
with (rahm.graphics){
lineStyle(3, 0xFFFFFF);
moveTo(546,231);
lineTo(546,323);
lineTo(618.3,323);
lineTo(618.3,231);
lineTo(546,231);
}
und möchte es später bei einem MouseEvent anzeigen lassen. Klappt mit addChild auch gut. Es wird nach dem Event auch wieder removed. Das klappt auch. ABER:
Nun will ich das gleiche Sprite an einer anderen Stelle bei einem anderen MouseEvent einfügen und habe die neue Position mit
rahm.x=655;
rahm.y=235;
addChild(rahm);
in die Event-Funktion geschrieben. Geht nicht. WARUM?
Capri ist offline   Mit Zitat antworten
Alt 10-02-2009, 03:17   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.109
weil man einen kuchen nur einmal essen kann ;-)

erstelle eine funktion, die kannst du immer wieder benützen
und werte möglichst niemals fest in ein programm reinschreiben
und viel in die flash-hilfe reinsehen - für rechtecke zeichnen gibts einen extra befehl

und hier mal links unten auf BB-Code klicken
Code:
function fRect(x:int,y:int,b:int,h:int,dick:int,col:Number) {
	var rahm:Sprite = new Sprite();
	rahm.x=x;
	rahm.y=y;
	with (rahm.graphics) {
		lineStyle(dick, col);
		lineTo(0,b);
		lineTo(h,b);
		lineTo(h,0);
		lineTo(0,0);
	}
	return rahm;
}
//
addChild(fRect(30,30,200,50,3,0xff0000));
addChild(fRect(70,60,200,50,3,0x00ff00));
__________________
die ultimative antwort auf alle programmierfragen: der debugger!
- vor eine programmzeile klicken (==roter punkt)
- im menü "debuggen" aufrufen
- auf den grünen pfeil klicken
- im swf etwas machen (der programmablauf hält beim roten punkt)
- links die objekte auswählen, variable, interne... mal alles ansehen!
mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen.

mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-02-2009, 17:19   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2009
Beiträge: 17
Okay, danke für die erste Antwort. Da schließt sich grad eine Frage an:

Die Funktion, die mir die Rechtecke zeichnet rufe ich aus einer anderen Funktion auf, die über ein MouseEvent gesteuert wird. Nun möchte ich das child, das die Funktion fRect auf die Bühne fügt ansprechen. Genauer gesagt möchte ich es in einer anderen Funktion wieder entfernen. Wie geht das???
Capri ist offline   Mit Zitat antworten
Alt 11-02-2009, 17:45   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.109
die referenz auf die objekte aufheben, dann kannst du die auch wo anders benützen.

var r1:Sprite = fRect(30,30,200,50,3,0xff0009);
var r2:Sprite = fRect(70,60,200,50,3,0x00ff00);
addChild(r1);
addChild(r2);

wenn du die referenz nicht hast, dann musst du die mit z.b. getChildAt oder getChildByName geben lassen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger!
- vor eine programmzeile klicken (==roter punkt)
- im menü "debuggen" aufrufen
- auf den grünen pfeil klicken
- im swf etwas machen (der programmablauf hält beim roten punkt)
- links die objekte auswählen, variable, interne... mal alles ansehen!
mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen.

mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (11-02-2009 um 17:47 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
addchild, sprite

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:50 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele