AS3 Überprüfung ob sich eine Instanz eines Objektes auf der Bühne Befindet

The Gone

Grünschnabel
Liebe Flasher,

Ich habe mal wieder eine Frage, die den meisten von euch sicher keine Schwierigkeiten macht aber ich sitz natürlich wieder komplett auf der Leitung.

Wie kann ich in Action Script 3 überprüfen, ob eine Instanz (Pic) sich bereits auf der Bühne befindet? Geht das überhaupt?

Alles Liebe
Go
 
Hi,

mit CS3 arbeite ich leider noch nicht, aber ich kann Dir zumindest für AS2.0 mitteilen, dass es für Bibliotheksobjekte (z.B. MovieClips) keine Möglichkeit gibt.

Gruß
.
 
Man könnte doch mit einer for in schleife prüfen ob sich zB MovieClip instanzen (oder andere objekte) auf der Bühne befinden, zB so jetzt für Mc's

Code:
for (i in _root) {
	if (typeof _root[i] == "movieclip") {
		trace(_root[i]);
	}
}

oder hab ich jetzt was mißverstanden? :confused:
 
@Denniz: Das ist schon korrekt so, aber dem Threadersteller ging es m.E. darum, in Erfahrung zu bringen, ob sich ein bestimmter MovieClip aus der Bibliothek auf der Bühne befindet.

Als einzige (recht dämliche Lösung) fiele mir dazu ein, alle möglichen Bezeichner "brufeforce-mäßig" durchzulaufen, zu instanzieren, sich ein paar Eigenschaften zu merken, das Ding wieder zu löschen und dann mit allen anderen Objekten auf der Bühne auf Übereinstimmung mit den gespeicherten Eigenschaften zu testen ... :eek:

Sinnvoller dürfte es wohl sein, sich gleich einen eigenen Instanzierungsmanager zu schreiben (z.B. ein Wrapper für die attachMovie-Methode, der alle neu instanzierten Clips in einer Liste hinterlegt).

Gruß
.
 
Vielen Dank für eure Überlegungen!
Vielleicht sollte ich mein Vorhaben beschreiben.

Ich erstelle per AS einen Container in dem sich Thumbnails befinden.
Dieser soll aber erst erscheinen, wenn die Kategorie ausgewählt wird. Und ich habe mir gedacht, dass ich den Container löschen muß, wenn ich eine neue Instanz davon mit anderen Thumbnails auf die Bühne holen möchte, damit sich die Instanzen nicht überlappen.
Jetzt weiß ich aber nicht, ob von Anfang an eine Instanz auf der Bühne ist und wenn ich überprüfe ob sich der Container schon auf der Bühne befindet er aber noch nicht drauf liegt bekomme ich eine Fehlermeldung.

Alles Liebe
Go
 
Hi,

setze den Container doch einfach immer auf die selbe Tiefenebene (dritter Parameter bei attachMovie) - damit würdest Du ältere Instanzen des Dings überschreiben, so dass sich nichts überlappt.

Ansonsten: Merke Dir die Erstellung des Containers in einer Variablen, so dass Du die Instanz entfernen kannst, bevor Du eine neue erstellst. z.B. so:
Code:
var containerDa = false;

function addContainer() {
  if (containerDa) {
    container.removeMovieClip();
  }
  container = this.attachMovie("container", "container", 1);
  containerDa = true;
}

Gruß
.
 
Ja Perfekt Vielen Vielen Dank

Funktioniert gut mit AS2 jetz muß ich nur noch schaun wie sich das mit AS3 anlässt!

Vielen Dank nochmal!
Alles Liebe!
Go
 

Neue Beiträge

Zurück