Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-09-2005, 20:57   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Existenz eines MC's prüfen

Hallo,

für eine Navigation muss ich folgendes lösen:

Beim Click auf Navigationspunkte werden swf's geladen, die aussehen wir Karteikarten. Ich habe dafür sechs Instanzen eines Movieclips namens "snapshot", die dann von den geladenen swf's ersetzt werden. Diese Karten sollen nun aber immer im gleichen Abstand geladen werden. D. h., egal welcher Navigationspunkt als zweiter aufgerufen wird, er muss an der Position erscheinen, wo die zweite Karte erscheinen soll.

Mein Ansatz:
Ich prüfe mit einer if-Schleife der Reihe nach, ob snapshot1 schon eine geladene swf enthält, dann ob snapshot2 schon eine enthält usw. In die erste Instanz von snapshot, die noch leer ist, wird dann mein neuer Navigationspunkt geladen.

Snapshot enthält immer einen MC namens "photo", den ich wie folgt ansprechen kann: "on (release) {
_parent.snapshot2.photo.loadMovie("VERPACKUNGEN.sw f");
}"

Wie kann ich nun prüfen, ob snapshotX noch den MC "photo" enthält oder aber bereits eine swf hineingeladen wurde? Wenn das gelöst wäre, müsste alles funktionieren.

Was denkt Ihr??

Vielen Dank für die Hilfe!!

Philipp
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:05   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Du speicherst im MC snapshot in einer Variable den aktuellen Inhalt von photo, da kannste dann immer ablesen ob schon swf, oder noch original Inhalt, vorhanden ist.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:14   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Hab ich leider nicht ganz verstanden, wäre toll, wenn Du es mir nochmal ganz konkret erklären könntest!
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:29   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Du hast doch 6 MC's mit den Namen snapshot1 - snapshot6.
Jeder dieser enthällt einen MC mit dem Instanznamen "photo".
Photo ist der mc in den dann jeweils die swf geladen wird.

Also währe es doch am besten im MC snapshot eine Variable anzulegen ( zB inhalt ) in der du dann speicherst ob du eine swf in den mc photo geladen hast oder noch der original Inhalt enthalten ist.

So weist du dann immer wenn du diese Variable abfragst, ob schon die swf vorhanden ist ( würde ein true/ false reichen ).
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:39   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Ja, alles klar, nur weiß ich eben nicht, wie ich diese Variable anlegen kann, die dann abfragt, ob bereits ein swf reingeladen wurde. Welchen Parameter der Klasse MovieClip kann ich dafür nutzen?

Gibt es sowas wie MovieClip.Isthierwasreingeladenworden true/false ?
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:47   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Nein, die schreibst du selber!
Also deinen mc snapshot in der Biliothek öffnen und in Frame 1 schreibste:
PHP-Code:
// noch nix reingeladen...
var inhalt false
So diese Variable kannst du dann ja auch abfragen.
Wenn du dann in snapshot2 eine swf laden willst fragst du vorher den Inhalt der Variable "inhalt" im MC snapshot2 ab.
Ist dieser false, dann ist noch keine swf geladen.
Also swf laden und der Variable "inhalt" im MC snapshot2 true zuweisen.
Ist der Inhalt aber schon true, dann brauchste die swf nicht mwhr laden da diese ja schon da sein muss.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-09-2005, 21:58   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Jetzt hab ich s verstanden.
Vielen Dank!!
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 22:12   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Gerade entsteht eine Anschlussfrage:

Wenn eine Karteikarte geschlossen wird, muss die Variable inhalt für die Instanz von Snapshot, in der diese Karte geschlossen wird, ja wieder auf false gesetzt werden, damit die Position wieder frei wird.

Nur wie referenziere ich jetzt aus meinem Karten-MovieClip die Variable in genau dieser Instanz? Also wie kann die Karte den MC ansprechen, in den sie geladen wurde, nun aber wieder entladen wird?
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 22:15   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
??
Verstehe dich nicht so ganz, aber vielleicht habe ichs ja doch kapiert.

Die swf löscht sich ja nicht von alleine aus dem MC photo, das machst du doch per Script oder?
Da kannste doch dann auch per script die Variable weider false setzen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-09-2005, 22:28   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Ja, sorry, natürlich. Ich kann ja einfach mit _parent.inhalt=false; alles wieder rückgängig machen.

Das habe ich jetzt mal auf den Button gelegt, allerdings passiert nichts:

ActionScript:
  1. on (release) {
  2.    
  3.    
  4. if (_root.snapshot1.inhalt=false) {
  5.      _root.snapshot1.photo.loadMovie("VERPACKUNGEN.swf");
  6. } else if (_parent.snapshot2.inhalt=false) {
  7.      _parent.snapshot2.photo.loadMovie("VERPACKUNGEN.swf");
  8. } else if (_parent.snapshot3.inhalt=false) {
  9.      _parent.snapshot3.photo.loadMovie("VERPACKUNGEN.swf");
  10. } else if (_parent.snapshot4.inhalt=false) {
  11.     _parent.snapshot4.photo.loadMovie("VERPACKUNGEN.swf");
  12. }
  13.    
  14. }

Wieso? Danke übrigens nochmal für die nette Hilfe.
Seraphim ist offline   Mit Zitat antworten
Alt 20-09-2005, 22:46   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Vergleiche mach man mit "==" und nicht mit "=".
Und das true setzen der Variable nicht vergessen!
Den rest kapier ich mal wieder nicht, weiso in 4 mc's die gleiche swf laden?
__________________
ERROR: Signature is too large

Geändert von rendner[i] (20-09-2005 um 22:48 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 21-09-2005, 06:37   #12 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 100
Thumbs up

So, es funktioniert. Hat sich etwas komplizierter gestaltet, weil die Karteikarten auch noch draggable sind und zudem die letztgeladene immer oben aufliegen muss.

Vielen Dank,
für die Geduld ;-)
Seraphim 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele