Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-02-2010, 13:41   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 126
Bezugspunkt bei addChild();

Hallo,

ich ordne einen Sprite einem anderen per addChild() unter. Ich bin bisher (auch aus alten Flash 8 / AS2 Tagen) davon ausgegangen, dass die Position kindElement.x = 0, kindElement.y = 0 genau an der Ecke links oben vom übergeordneten Sprite ist.
Aber leider erscheint dieses Element in der oberen linken Ecke der Bühne - und das verstehe ich nicht. Wieso erscheint es da oben und bekommt nicht ein neues Bezugssystem (vom übergeordneten Element) zugeordnet?

Hier der entsprechende Code Schnipsel:
Code:
private function createControls():void
		{
			controlBar.graphics.beginFill(0x000000,1);
			controlBar.graphics.drawRect(0,stage.stageHeight-controlBarHeight,stage.stageWidth,controlBarHeight);
			controlBar.graphics.endFill();
			controlBar.graphics.beginFill(0x222222,1);
			controlBar.graphics.drawRect(0,stage.stageHeight-controlBarHeight,stage.stageWidth,controlBarHeight / 2);
			controlBar.graphics.endFill();
			
			btnPlay.graphics.beginFill(0xEEEEEE,1);
			btnPlay.graphics.moveTo(0,0);
			btnPlay.graphics.lineTo(10,7);
			btnPlay.graphics.lineTo(0,14);
			btnPlay.graphics.lineTo(0,0);
			btnPlay.graphics.endFill();
			
			controlBar.addChild(btnPlay);
			addChild(controlBar);
			btnPlay.x = 10; //muss diese Verschiebung vornehmen, um das Kindelement aus der oberen linken Ecke
					//der Bühne ins übergeordnete Element zu verschieben
			btnPlay.y = 301; //wie bei X...
		}
TianK ist offline   Mit Zitat antworten
Alt 23-02-2010, 14:00   #2 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Das ist schon richtig die Koordinaten beziehen sich auf das Elternelement.
Aber dieses hat bei Dir ja auch die Position x=0 und y=0, sitzt also in der Ecke oben links.
webxvideo ist offline   Mit Zitat antworten
Alt 23-02-2010, 14:04   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 126
Du meinst, weil ich mit moveTo(0,0) die linke obere Bühnenecke ansteuer?? Wie umgehe ich das denn? Ich will bei pos x=y=0 einfach oben links im Elternelement hocken.
TianK ist offline   Mit Zitat antworten
Alt 23-02-2010, 14:29   #4 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Dein Elternelement (controlBar) hast Du doch gar nicht neu positioniert, also ist es auch oben links in der Ecke. Folglich ist das Childelement (btnPlay) ohne eine Positionierung auch oben links.

EDIT:
Will sagen: Dein Child-Element IST im Parent-Element auf Position 0/0;

Geändert von webxvideo (23-02-2010 um 14:31 Uhr)
webxvideo ist offline   Mit Zitat antworten
Alt 23-02-2010, 14:40   #5 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Ich glaube ich ahne jetzt wo Dein Denkfehler sitzt.
Meinst Du mit dem Wert stage.stageHeight-controlBarHeight in drawrect verschiebst Du den Sprite in seiner Position?
Das sit falsch, Du malst dort lediglich ein Rechteck welches an der Y-Position stage.stageHeight-controlBarHeight innerhalb von controlBar beginnt.

Wahrscheinlich erreichst Du mit folgendem Code Dein gewünschtes Ergebnis:
ActionScript:
  1. controlBar.graphics.beginFill(0x000000,1);
  2. controlBar.graphics.drawRect(0,0,stage.stageWidth,controlBarHeight);
  3. controlBar.graphics.endFill();
  4. controlBar.graphics.beginFill(0x222222,1);
  5. controlBar.graphics.drawRect(0,0,stage.stageWidth,controlBarHeight / 2);
  6. controlBar.graphics.endFill();
  7.  
  8. controlBar.y=stage.stageHeight-controlBarHeight;
  9.  
  10. // und der Rest wie gehabt
  11.  
webxvideo ist offline   Mit Zitat antworten
Alt 23-02-2010, 17:34   #6 (permalink)
AS-Fan
 
Benutzerbild von Ui-Ui
 
Registriert seit: Aug 2007
Ort: Bayern
Beiträge: 111
Du beginnst beim Zeichnen immer ganz links oben. Deine Controlbar fängt also eigentlich schon am 0-Punkt der Bühne an. Die Füllung aber erst später, entsprechend der controlBarHeight eben. Das ändert aber nichts daran dass die controlBar trotzdem schon am 0-Punkt anfängt. Der obere Teil ist also quasi transparent.

Gib die Höhe der controlBar mal mit "trace(controlBar.height)" aus und du wirst sehen dass diese Zahl höher ist als deine festgelegte controlBarHeight.
Ui-Ui ist offline   Mit Zitat antworten
Alt 26-02-2010, 11:10   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 126
Ach Du kacke - Ihr habt ja dermaßen recht.

Das habe ich wirklich komplett verpeilt, dass ich das Zeichnen ja bei x=300 oder so anfange von der ControlBar ... habs nu auf 0,0 gestellt und es danach einfach verschoben - und zack, da klappts dann auch.

Vielen Dank euch, dass ihr mich da aus meinem Denkknoten rausgeholt habt!
TianK ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
addchild, bezugssystem, koordinaten

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] Bezugspunkt ändern Karatekeks Flash Einsteiger 2 13-02-2009 13:18
position relative auf bestimmten bezugspunkt beziehen roooot Alternative Technologien 2 17-04-2007 08:34
Mittelpunkt als bezugspunkt auswählen picknicker Flash Einsteiger 4 12-03-2007 17:07
container movieclip zentrieren / bezugspunkt wählen Superbohne Flash MX 5 18-09-2006 09:59
position mit bezugspunkt ändern andretti ActionScript 1 2 09-01-2005 17:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele