| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2011
Beiträge: 14
| Koordinatensystem bei dynamisch zusammengeführten movieclips
Hallo, 2 Fragen zum gleichen Thema. 1. Ich füge zur Laufzeit 2 movieclips in einem neuen movieclip (container) zusammen. Wenn ich dann den container bewege erhalte ich negative container- Koordinaten auf der Bühne. Ich habe dies schon einmal "von Hand" in der IDE von Flash gemacht - da blieb der Ursrung der Bühne oben links bei 0/0. Ich weiß, daß ein movieclip intern sein lokales Koordinatensystem mitbringt, aber der container als movieclip wird doch an der Bühne ausgerichtet - oder habe ich da etwas falsch verstanden? 2. Ich habe dann zum Testen von Hand einen container auf die Bühne gelegt und dynamisch einen movieclip (Kreis) eingefügt. Der bleibt aber unsichtbar - der container ist transparent. Die Objekthierarchie ist korrekt - siehe trace in der kleinen Demo, wo ich diese 2 Fälle isoliert und dargestellt habe. ---------------------------------------------------------------------------------------------------------------------------------------------------- Das Verrückte ist, daß ich als AS3 Anfänger die schwierigeren Sachen eher hinbekomme als die Leichten - ist das typisch für AS3 oder liegt das an mir? Für einen Hinweis, der mich von der Wand vor der ich stehe, wegholt, wäre ich sehr dankbar. riester |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
nur am rande erwähnt: die bühne selbst ist ein movieclip. und kann grundsätzlich wie ein mc behandelt werden root.rotation=15; // ist selbstverständlich möglich. sinngemass kann man auch x,y,scale ... ändern jedes movieclip hat ein eigenes koordinatensystem standardmässig steht der koordinatenursprung von der bühne links oben, rotation ist null und skalierung ist 100% negative werte sind ganz normal, das steht dann weiter links oben angenommen du setzt 'A' auf die bühne und in 'A' drinn gibt es 'B' bei position x=50, y=100 das gilt dann für B vollkommen egal wo sich A befindet. wenn du A bewegst und drehst und skalierst, dann bewegen sich B mit, weil sich für B NICHTS geändert hat. B 'denkt' immer noch, es würde bei x=50, y=100 stehen, hätte keine drehung und keine skalierung (und hat das auch innerhalb von A) angenommen du willst jetzt wissen wo B auf der bühne steht, dann musst du rechnen: position von A + position von B (in A) geteilt durch die skalierung von A und dann noch die rotation von A mit berücksichtigen ... und bei mehrfacher schachtelung sinngemäss .. oder einfach: // diese lokale koordinate von B var p = {x:0, y:0} // befindet sich global bei var p = B.localToGlobal(p);
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (18-05-2011 um 10:15 Uhr) |
| | |
| | #4 (permalink) | |
| Neuer User Registriert seit: May 2011
Beiträge: 14
| wo liegt der container auf der Bühne Zitat:
Kann es sein, daß es einen Unterschied macht, wenn ein container dynamisch erzeugt wird, aber der movieclip, der dynamisch in den container gepackt werden soll, schon auf der Bühne liegt? Ich habe dies nämlich alles schon einmal gemacht - von Hand und da hat der container ganz normale positive Bühnenkoordinaten. riester Für Leidensgenossen habe ich dieses anschauliche Tutorial gefunden. How to use the coordinate system in Flash and move objects with ActionScript | Flash Explained | |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| immer da, wo du es hinlegst Code: import flash.display.Sprite;
import flash.geom.Point;
var A:Sprite = new Sprite();
addChild(A);
// am anfang steht's immer auf 0/0
trace("a)",A.x,A.y);
A.x=100, A.y=50;
// A wurde verschoben
trace("b)",A.x,A.y);
var B:Sprite = new Sprite();
A.addChild(B);
// für B ist A gewissermassen seine Bühne
// am anfang steht's immer auf 0/0
trace("c)",B.x,B.y);
var p:Point = new Point();
p = B.localToGlobal(p);
// von der richtigen bühne aus gesehen natürlich nicht
trace("d)",p.x,p.y);
B.x=11, B.y=5;
p = new Point();
p = B.localToGlobal(p);
trace("e)",p.x,p.y);
/*
a) 0 0
b) 100 50
c) 0 0
d) 100 50
e) 111 55
*/
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Dynamisch MovieClips hinzufügen | NeoInferno | ActionScript 2 | 7 | 29-01-2007 20:27 |
| movieclips dynamisch skalieren | pegasus75 | ActionScript 1 | 9 | 04-03-2006 12:06 |
| Movieclips dynamisch erstellen | bassball | ActionScript 1 | 1 | 13-01-2006 00:02 |
| movieclips dynamisch ansteuern | benedict171217 | Flash MX 2004 | 2 | 21-08-2005 13:02 |
| Dynamisch erstellte MovieClips | TWfromSWD | Flash 4 und Flash 5 | 4 | 12-01-2004 17:37 |