Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-08-2010, 13:47   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 25
Anderes "Footage" für Movieclips

Hallo, ich bin kein gänzlicher Einsteiger mehr, aber bei diesem "Problem" bin ich einfach ratlos.
Ich möchte ein kleines Spiel machen, bei dem ich mehrere Objekte erstellen will, die alle die gleiche Klasse haben, jedoch auf andere "movieclips" zugreifen.
Konkret möchte ich mehrere Gegner haben, die alle jedoch bisher von der gleichen Gegner-Klasse erben. Ich habe daraufhin jedoch in meinem Programm ein dutzend .as Dateien, die alle lediglich einen anderen Movieclip referenzieren, dort aber praktisch gänzlich von dem Original Gegner erben. Schließlich sind sie von ein paar Attributswerten und dem "Bild" eben gleich.
Daher meine Frage:

Wenn ich viele ähnliche Instanzen eines Objektes habe. Aber Gegner 1 und Gegner 2 verschiedene Animationsbilder haben sollen. Wie kann ich das in meiner ActionScript Datei lösen, ohne umständlich ein neues Symbol zu erstellen und in der dazugehörigen Klasse "extents Gegner 1" zu nutzen? Irgendwie scheint mir das unsinnig. Mir scheint, als wenn eine Referenz auf einen anderen Movieclip oder eine Timeline im Konstruktor sowas lösen können sollte und ich dann beim Erstellen nur angeben müsste:
= new Gegner(Animation2, 123, 456, "Gegner 2");
anstatt wie vorher
= new Gegner1();
= new Gegner2();
etc.
Hat jemand eine Idee?

Ich hoffe, ihr könnt mir dabei helfen.
Vielen Dank für eure Hilfe,

Tobias
TobiasReich ist offline   Mit Zitat antworten
Alt 03-08-2010, 13:50   #2 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Du hast da schon den richtigen Ansatz. Mit einer type-Variable einfach den Typ angeben, beim Initialisieren diesen abfragen und dementsprechend den benötigten MC referenzieren / hineinladen / benutzen.
DerTobi ist offline   Mit Zitat antworten
Alt 03-08-2010, 14:23   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 25
Referenzieren?

Genau da liegt ja mein Problem? Wie kann ich denn referenzieren, dass statt des "Original" Movieclips nun ein anderer angezeigt wird?
Ich bin mir über die Syntax nicht im Klaren, zumal ich die anderen Grafiken ja lediglich als anderen MovieClip in der Bibliothek habe. Ich müsste also angeben, dass er die gleiche Klasse Gegner nimmt, aber dort dann auf den Movieclip referenzieren, den ich im Konstruktor angegeben habe.
Mit welchem Begriff geht denn das? Und ist das dann dauerhaft in dem erstellten Objekt vorhanden?
Immerhin würde ich ja zu einzelnen Keyframes springen, wenn ich dann etwa den Gegner zerstöre.
Bisweilen sieht das dann so aus:

function zerstoeren()...{
...
gotoAndPlay("zerstoeren");
...
}

funktioniert das, wenn einfach irgendwo zu Beginn im Konstruktor einfach ein anderer Movieclip "referenziert" wurde?
Vielleicht kannst Du mir das kurz als Quellcode bzw. Methode schreiben, nach der ich suche.
Danke!
TobiasReich ist offline   Mit Zitat antworten
Alt 03-08-2010, 14:27   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Hilft dir das weiter?

ActionScript:
  1. public class Gegner extends Gegner1
  2. {
  3.     private var _type : String;
  4.     private var _mc : MovieClip;
  5.    
  6.     public Gegner( type : String )
  7.     {
  8.         _type = type;
  9.         init();
  10.     }
  11.    
  12.     private function init() : void
  13.     {
  14.         switch(_type)
  15.         {
  16.             case "Gegner1":
  17.                 _mc = new deineMovieClipClass();
  18.                 break;
  19.             case "Gegner2":
  20.                 _mc = new andereMovieClipClass();
  21.                 break;
  22.                 .
  23.                 .
  24.                 .
  25.         }
  26.     }
  27. }
DerTobi ist offline   Mit Zitat antworten
Alt 03-08-2010, 14:56   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 25
Danke für den Quellcode.
Aber irgendwie habe ich immernoch meinen Denkfehler.
Ich trace, dass er die eine oder andere Switch-Anweisung wählt, aber der MovieClip wird trotzdem nicht angezeigt.
Irgendwie ist das jetzt "nur" ne Variable in meiner Klasse. Wie kann ich denn diesen Movieclip al den anzuzeigenden auswählen? Das ist grad irgendwie nicht in meinem Kopf... :-(
TobiasReich ist offline   Mit Zitat antworten
Alt 03-08-2010, 15:00   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Naja wie lässt du denn den anderen anzeigen?

Den MovieClip musst du ja dann noch mit addChild() auf die Bühne packen.
DerTobi ist offline   Mit Zitat antworten
Alt 03-08-2010, 15:13   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 25
Ahh, jetzt verstehe ich!
Dann ist meine Klasse Gegner nur ein Container, der die Methoden beinhaltet + einen Movieclip, den ich dann im Container einbette!!!
Doh!
Na gut, jetzt begreife ichs. Und damit sind alle Gegner Instanzen der Klasse Gegner, nur dass sie in sich einen eigenen Movieclip haben, auf den ich differenziert zugreifen kann!
Ich DANKE Dir, mein Namensbruder!!!!!!
TobiasReich ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
bild in as datei ändern, mcs andere animation, verschiedene instanzen

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
Menü "DepthControl" geht nicht - gibt was anderes ? Michel Schirmer Flash Einsteiger 1 01-08-2007 15:41
Wo ist find ich die Leiste mit "Normal", "Darüber", "Gedrückt" und "Aktiv" maggi198 Flash Einsteiger 2 19-10-2006 21:33
button eines movieclips steuern anderen movieclip""" xnemox Flash MX 7 25-08-2003 13:32
Button der ein anderes Element "aufruft" highend Flash 4 und Flash 5 3 21-11-2002 17:59
"quit", "anderes programm?" cosmix Flash MX 2 09-09-2002 20:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele