Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-01-2012, 14:53   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
mc-Auswahl nach getChildByName

Hallo zusammen,

ich habe einen MC (mc1) erstellt und ihm den selben Namen als Klasse gegeben. Er enthält einen weiteren MC (mc2, instanzname ist "versuch"). Sie befinden sich nicht auf der Oberfläche, sondern werden erst später reingeladen, dass habe ich so angestellt:
Code:
var test:mc1 = new mc1;
test.name = "abc";
Funktioniert auch alles soweit.

Wie gehe ich es jetzt aber an, wenn ich mc1 auf die Oberfläche geladen habe, und mc2 ansprechen möchte?

Code:
getChildByName("abc").versuch
get ja nicht...
cosmoses ist offline   Mit Zitat antworten
Alt 15-01-2012, 15:19   #2 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.042
probier's mal so:

mc1.mc2

getChildByName bezieht sich auf die Anzegeliste.
__________________
anbei Grüße vom milchreis: Viva la [Silb]

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 15-01-2012, 15:30   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
das geht leider nicht, da ich mc1 öfter einfügen lasse, der eigentliche bekommt der MC so
Code:
test.name = "c-" + pNumber
(wollte nur das nötigste in den vorigen Beitrag schreiben).

Aufgerufen wird das Ganze dann in einer for-Schleife
Code:
getChildByName("c-" + i)
gibt es hier keine Lösungswege?
cosmoses ist offline   Mit Zitat antworten
Alt 15-01-2012, 16:58   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von cosmoses Beitrag anzeigen
ich habe einen MC (mc1) erstellt und ihm den selben Namen als Klasse gegeben.
Zunächst mal drei formale Dinge:
  • In Flash ist es üblich Klassennamen immer mit einem Großbuchstaben zu beginnen, um sie so von allen anderen Variablen zu unterscheiden.
  • Entsprechend der Coding Conventions sollte man zudem bei jeder Instanzierung () hinter den Konstruktoraufruf schreiben (auch wenn gar keine Parameter übergeben werden).
  • MovieClips benötigt man in AS3 wirklich nur noch dann, wenn sie ZeitleistenAnimationen enthalten. In allen anderen Fällen reicht ein Sprite!
ActionScript:
  1. var mc:Mc1 = new Mc1();
Nun zum eigentlichen Problem:
Zitat:
Zitat von cosmoses Beitrag anzeigen
Wie gehe ich es jetzt aber an, wenn ich mc1 auf die Oberfläche geladen habe, und mc2 ansprechen möchte?

Code:
getChildByName("abc").versuch
get ja nicht...
Das funktioniert deshalb nicht, weil getChildByName ein auf DisplayObject typisierte Variable zurückliefert und DisplayObject nunmal keine Eigenschaft namens verlauf enthält.

Mit Namen und getChildByName und dynamischen Zugriffen zu arbeiten ist auch nicht sonderlich schick, fehleranfällig, ziemlich performant und zudem meistens unnötig. Gerade wenn man die Instanzen selbst erzeugt, hat man ja eine sauber typisierte Referenz mit der man arbeiten kann:
ActionScript:
  1. trace( mc.verlauf );
Zitat:
Zitat von cosmoses Beitrag anzeigen
das geht leider nicht, da ich mc1 öfter einfügen lasse, der eigentliche bekommt der MC so
Code:
test.name = "c-" + pNumber
(wollte nur das nötigste in den vorigen Beitrag schreiben).

Aufgerufen wird das Ganze dann in einer for-Schleife
Code:
getChildByName("c-" + i)
Und wenn man mit einer Variablen nicht auskommt, weil man mit vielen Instanzen arbeitet, sollte man diese einfach in ein Array (oder einen Vector) schreiben:
ActionScript:
  1. var mcs:Array = [];
  2.  
  3. // In der Instanzierungsfunktion:
  4.     var mc:Mc1;
  5.     for(var i:uint = 0; i<100; i++){
  6.         mc = new Mc1();
  7.         addChild(mc);
  8.         mcs.push(mc);
  9.     }
  10.  
  11. // Bei einem späteren Aufruf
  12.     for each(var mc1:Mc1 in mcs) {
  13.         trace(mc1 + ".versuch = " + mc1.versuch);
  14.     }
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (15-01-2012 um 17:00 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-01-2012, 20:34   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 39
super danke funktioniert
cosmoses ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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
mc.getchildByName() nach mc.gotoAndStop() madflanderz ActionScript 3 2 03-01-2008 19:24
Focus von ComboBox bleibt nach auswahl stehen... renderscout Komponenten und SmartClips 1 28-03-2007 15:23
ComboBox Problem nach Auswahl negativer SelectedIndex SMT Komponenten und SmartClips 3 11-01-2007 10:43
Combobox Rahmen bleibt da nach Auswahl washbear Komponenten und SmartClips 2 29-07-2006 23:51
Nach Texteingabefeld auswahl spielt der flashfilm verrückt !! Atticus Flash 8 26 09-07-2006 09:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele