Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-11-2011, 17:06   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 64
Die selbe Klasse an mehrere MCs linken

Ich habe mir eine Klasse geschrieben, die ich an eine MC linke. Anschließend ist der MC mit allen Effekten und Methoden versehen, die ich brauche um ihn als Button zu verwenden. Jetzt wollte ich einen zweiten Button damit anlegen und musste feststellen, dass man die gleiche Klasse nur einmal verlinken kann. Ich erkenne den Sinn darin nicht so ganz und wüsste gerne ob es da einen Trick gibt um so etwas zu umgehen, ohne für jedes Objekt eine eigene Klasse anzulegen.
magic_al ist offline   Mit Zitat antworten
Alt 28-11-2011, 17:11   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Trag die Klasse in den Symboldefinitionen als BasisKlasse ein und nicht als Klasse.

Der Unterschied und Sinn des Ganzen ist, dass...
  • ... im einen Fall (Klasse) Symbol und Klasse zu einer Einheit verschmelzen. D.h. überall, wo die Klasse instanziiert wird taucht auch das Symbol auf (weshalb es nur ein Symbol geben darf) ...
  • ... während Flash im anderen Fall automatisch eine neue Klasse für das Symbol erstellt, die dann bei der Basisklasse "nur" erbt.
__________________
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 (28-11-2011 um 17:12 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 28-11-2011, 17:14   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 64
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Trag die Klasse in den Symboldefinitionen als BasisKlasse ein und nicht als Klasse.[/LIST]
Habs gefunden, danke. Das geht super.

Gruß,

Al

Geändert von magic_al (28-11-2011 um 17:22 Uhr)
magic_al ist offline   Mit Zitat antworten
Alt 28-11-2011, 17:24   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 64
Gibt es irgendwie eine Möglichkeit eine Methode aller Objecte aufzurufen, die über die gleiche Basisklasse verfügen?
magic_al ist offline   Mit Zitat antworten
Alt 28-11-2011, 17:31   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von magic_al Beitrag anzeigen
Gibt es irgendwie eine Möglichkeit eine Methode aller Objecte aufzurufen, die über die gleiche Basisklasse verfügen?
Dafür müsste man die Instanzen bei Ihrer Erzeugung z.B. in static-deklariertes Array schreiben und später aus diesem heraus wieder ansprechen:
ActionScript:
  1. static var instances:Array = [];
  2.  
  3. // Im Konstruktor
  4. instances.push(this);
  5.  
  6. // Aufruf
  7. for each(var instance:DeineKlasse in instances) instance.deineFunktion();
Allerdings hat das einige potentiell negative Auswirkungen (z.B. auf die Modularisierbarkeit des Codes und die Garbage Collection). Weshalb ich Dir eigentlich davon abraten würde.

Was genau hast Du denn vor? Wozu brauchst Du das?
__________________
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!
Martin Kraft ist offline   Mit Zitat antworten
Alt 28-11-2011, 17:43   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 64
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Dafür müsste man die Instanzen bei Ihrer Erzeugung z.B. in static-deklariertes Array schreiben und später aus diesem heraus wieder ansprechen:
ActionScript:
  1. static var instances:Array = [];
  2.  
  3. // Im Konstruktor
  4. instances.push(this);
  5.  
  6. // Aufruf
  7. for each(var instance:DeineKlasse in instances) instance.deineFunktion();
Allerdings hat das einige potentiell negative Auswirkungen (z.B. auf die Modularisierbarkeit des Codes und die Garbage Collection). Weshalb ich Dir eigentlich davon abraten würde.

Was genau hast Du denn vor? Wozu brauchst Du das?
Ich baue eine Seite die zweisprachig sein soll. Und wenn man auf einen Button klickt, soll sämtlicher (z.B. deutscher Text) ausgeblendet werden und dann (z.B. English) wieder eingeblendet werden. Jetzt habe ich mir überlegt eine Klasse zu schreiben der ich für jedes TextFeld den Instanznamen den eng. und den deu. Text übergebe und bei einem klick auf einen Button wird jedes "registriertes" Textfeld geändert. Ist das iwie verständlich beschrieben?!
magic_al 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
Mehrere SWF's mit Loader-Klasse zusammenfügen Detox ActionScript 3 2 22-09-2011 00:32
Mehrere mc's -> Eine Klasse? xeed ActionScript 3 7 01-11-2010 06:18
mehrere Bibliotheksymbole der gleichen Klasse jb3380 ActionScript 3 6 02-09-2009 08:34
2 Computers mit selbe Verbindung das selbe Spiel spielen Son-Goku Am Rande 5 26-10-2003 23:46


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

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


Copyright ©1999 – 2012 Marc Thiele