Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-04-2005, 15:36   #1 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
remove all - gibt's so was?

Gibt es eine Möglichkeit alle attachten mcs auf der Bühne auf einmal wieder zu entfernen. Das einzige was mir eingefallen ist, ist alle von vornherein in einen übergeordneten mc zu packen, und diesen dann zu entfernen. Das müsste gehen oder? Aber gibt's da auch einen Befehl? Oder hat jemand eine andere Lösung?
snard ist offline   Mit Zitat antworten
Alt 25-04-2005, 15:38   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Sollte so gehen:
ActionScript:
  1. for (var i in this) {
  2. this[i].removeMovieClip ();
  3. }
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 25-04-2005, 15:50   #3 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Zitat:
Zitat von sonar
Sollte so gehen:
ActionScript:
  1. for (var i in this) {
  2. this[i].removeMovieClip ();
  3. }
Danke, funktioniert soweit für alle in der "this"-Ebene. Kannst du mir die Logik dahinter kurz beschreiben. Komm da nicht so ganz dahinter. Mit einer weiteren for schleife drumrum müsste man dann auch alle anderen Ebenen abdecken können oder?
snard ist offline   Mit Zitat antworten
Alt 25-04-2005, 16:05   #4 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
this gibt in diesem fall das 'ziel' an.
einfach durch (d)einen gewünschten mc ersetzen, und dann
entfernt er alle mcs in diesem movieclip...

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 26-04-2005, 07:11   #5 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Und wenn Du anstatt this _root einsetzt müsste er dann auch alle entfernen.

Edit:
Habe da gleich mal ne kleine Funktion draus gemacht.
PHP-Code:
// pfad = wo sollen alle MC's gelöscht werden,
// a (Bool)= 0 oder false --> nur alle dynamischen
//           1 oder true  --> alle
function removeAllMcspfada){
    if( 
a){
        for( var 
i in pfad) {
            
pfad[i].swapDepths9999);
            
pfad[i].removeMovieClip();
        }
    }
    else{
        for( var 
i in pfad) {
               
pfad[i].removeMovieClip();
        }
    }
}

removeAllMcs_root1); 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (26-04-2005 um 07:58 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 27-04-2005, 14:20   #6 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Danke funktioniert, hab das ganze mal noch etwas erweitert:
ActionScript:
  1. function removeAllMcs(pfad, mcTyp) {
  2. // mcTyp = stat --> nur alle statischen; mcTyp = stat --> nur alle dynamischen;
  3. // mcTyp = all  oder ohne Parameter --> alle;
  4.     switch (mcTyp) {
  5.         case stat:
  6.             for( var i in pfad) {
  7.                 pfad[i].swapDepths( 9999);
  8.             }
  9.         break;
  10.         case dyn:
  11.             for(var i in pfad) {
  12.                 pfad[i].removeMovieClip();
  13.             }
  14.         break;
  15.         case all:
  16.             for( var i in pfad) {
  17.                 pfad[i].swapDepths( 9999);
  18.                 pfad[i].removeMovieClip();
  19.             }
  20.         break;
  21.         default:
  22.             for( var i in pfad) {
  23.                 pfad[i].swapDepths( 9999);
  24.                 pfad[i].removeMovieClip();
  25.             }
  26.     }
  27. }
  28.  
  29. //Bsp.:
  30. removeAllMcs(_root, "all");
  31.  
  32.  
  33. function removeAllTextFields(pfad) { //pfad = wo sollen alle Textfelder gelöscht werden
  34.     for( var i in pfad) {
  35.         pfad[i].removeTextField();
  36.     }
  37. }
snard ist offline   Mit Zitat antworten
Alt 27-04-2005, 15:34   #7 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
ich will ja nichts sagen, aber deine funktion wird nicht funktionieren - zumindest nicht so, wie du erwartest ^^

1. case versucht bei dir den Wert der Variable stat (bzw. dyn, all ) mit mcTyp zu vergleichen. stat (bzw. dyn, all ) ist undefined, also kommt immer false raus und somit nimmt er immer den default wert

2. mit pfad[i].swapDepths( 9999); (wert "stat" ) kannst du nicht alle statischen Movieclips löschen. Denn swapDepths setzt die zur Laufzeit bereits existierenden Movieclips nur in die dynamische Tiefe, wodurch sie den dynamisch erstellten MCs gleichgestellt werden. Erst so können sie durch removeMovieClip(); gelöscht werden

3. dein default wert und dein "all" wert sind gleich, warum nimmst du dann den "all" wert nicht raus? default wird doch immer ausgeführt, wenn es auf kein case element zutrifft

Im Prinzip war die Funktion von redner[i] schon perfekt. Du konntest sie gar nicht mehr verbessern.
pokepika 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 06:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele