| |||||||
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: Nov 2006
Beiträge: 126
| Was genau passiert bei "addChild" aus einer Klasse heraus
Guten Tag liebe Flasher/innen, ich bin Umsteiger von AS2 auf AS3 und ich stolper momentan noch häufig über so gewisse Logiken, die ich nicht genau nachvollziehen kann. Mein aktuelles Problem ist, dass ich per Hand in der Flash IDE einen MC erzeugt habe und den einfach mal mc1_mc genannt habe. Danach habe ich eine Klasse angelegt mit der ich einfach einen gelben Kreis erstelle, diesen der Anzeigeleiste hinzufüge und diese als Dokument Klasse festgelegt: PHP-Code: Ich verstehe einfach nicht, wieso stage.numChildren nur 1 ergibt während numChildren direkt die eigentlich ja korrekte Zahl 2 ausgibt, da ja 2 Elemente da sind. Einmal das von Hand gezeichnete und einmal das per AS gezeichnete. Und: Wohin genau adde ich denn hier den "circle_mc"?? Ich hab da ja keine genauere Angabe gemacht. Und wo genau werden die per Hand in der IDE erstellten MCs "hingepackt"? Das ganze hier ist natürlich auch nur ein Probebeispiel, mit dem ich aktuell versuche so ein paar Strukturen nachzuvollziehen. Über ein paar Aufklärungsversuche wäre ich sehr dankbar. Lieben Gruß vom Tian |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jun 2006
Beiträge: 83
|
du hast innerhalb der klasse mit addChild() dem objekt selbst (welches ein sprite ist) ein sprite hinzugefügt. das kindelement ist von circle_test und liegt in circle_test, nicht in der stage. deshalb ist auf der stage nur ein children, nämlich das, das du gezeichnet hast. deine logik ist jedoch auch nicht ganz sinnig. denn du baust ein sprite in ein sprite, statt in dem sprite, dass du mit der klasse ja erstellst, zu zeichnen: PHP-Code: ----- EDIT außerhalb der klasse dann noch instanziieren und hinzufügen var cricle:circle_test = new circle_test(); stage.addChild(circle); zudem ist es noch sinnvoller, name garnicht zu vergeben sondern erst nach der instanziierung einen namen zu vergeben, da du das objekt ja beliebig oft instanziieren kannst. also name weg innerhalb der klasse und nach der instanziierung circle.name = "instanzname"; Geändert von jacquesr (06-10-2008 um 15:19 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 126
|
Ah - alles klar. Ich habe deine Mahnung an der "Sinnhaftigkeit" verstanden. Danke auf jedem Fall für den Wegweiser in die richtige Richtung. Hast du u.U. vllt einen Literaturtip für mich wo mit AS3 viel mit Klassen programmiert wird? Ich habe mir ActionScript 3 - Das Praxisbuch gekauft, wo ich bezüglich der Programmierung mit Klassen (also: Logig, wie ich den Code am besten aufbauen kann) dort leider nur recht wenig Information rausziehen konnte. Eine Frage bleibt bei mir aber dennoch: Warum gibt der Trace von "numChildren" ohne, dass ich "stage." davor schreibe den für mich ursprünglich als korrekt empfundenen Wert 2 hervor?? Wodrauf bezieht sich dieses numChildren? Gruß aus Bremen vom Tian EDIT: Heisst das also, dass ich automatisch ein Sprite Objekt mit der Klasse erzeuge (also sobald ich es instanziere), wenn ich oben schreibe PHP-Code: Geändert von TianK (06-10-2008 um 16:20 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2006
Beiträge: 83
|
genau das bedeutet es, weil du mit der expliziten anweisung "extends Sprite" ausdrückst, dass deine Klasse von der Klasse Sprite erben soll. somit kannst du auch alle methoden und eigenschaften ansprechen, die das sprite objekt hat. warum numchildren 2 zurückgibt ist eine gute frage, da du ja eigentlich nur dein sprite, dass du im sprite hast, als child hinzufügst. müsste man mal debuggen, was ja in flash selbst so leider nicht geht.. versuch mal trace(children.toString()), ich weiß nur nicht ob es children gibt, aber ich meine schon. vielleicht ist das aufschlussreicher.. was literatur angeht, da bin ich schon eher abgeneigt. inzwischen habe ich video2brain für mich entdeckt. such mal nach video2brain actionscript 3, da gibts eine dvd von saban ünlü. von as3 büchern habe ich keine ahnung kenne nur das von dir erwähnte praxisbuch
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |