Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-11-2011, 14:43   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
as3 - remove movieclip

ich möchte mit ein kleine funktion verschiedene anzahl von objekte erstellen, bzw. löschen, sobald ich die nicht mehr brauche.

PHP-Code:
//
var my_mc_array:Array = new Array();
var 
alteZahl:int;
//
function erstelle(evt:MouseEvent){
    
//
    // ermittle bt id, um zugehörige anzahl von clip zu erstellen
    
var id:uint Number(evt.target.name.split("_")[1]);
    
trace(id);
    
//
    // anzahl der clip, die zu bt id gehören
    
var AnZahlArray:Array = [5,10,15];
    var 
total AnZahlArray[id-1];
    
//
    
trace("alte zahl am anfang: " alteZahl);
    
//
    
var my_mc_array_alt:Array = new Array();
    
my_mc_array my_mc_array_alt;
    
//
    /// lösche verherige clips
    
for(var r:uint=0r<alteZahlr++){
        
removeChild(my_mc_array[r]);
    }
    
//
    //schleife zum erstellen von clips
    
for(var i:uint 0i<totali++){
        var 
my_mc:MovieClip = new MovieClip(); 
        
addChild(my_mc);
        
my_mc.buttonMode true;
        
        var 
hg:Sprite = new Sprite();
        
my_mc.addChild(hg);
        
hg.graphics.beginFill(0x0000FF);
        
hg.graphics.drawRect(0,0,50,50);
        
hg.graphics.endFill();

        
my_mc.= (my_mc.height+5)*i;
        
my_mc.stage.stageWidth/2-my_mc.width/2;
        
my_mc.name "mc_"+i;
        
my_mc_array.push(my_mc);
    }
    
//
    
alteZahl total;
    
trace("alte zahl am ende: " alteZahl);
}
//
//
bt_1.buttonMode true;
bt_1.addEventListener(MouseEvent.CLICK,erstelle);
bt_2.buttonMode true;
bt_2.addEventListener(MouseEvent.CLICK,erstelle);
bt_3.buttonMode true;
bt_3.addEventListener(MouseEvent.CLICK,erstelle); 
löschen klappt aber nicht. was mache ich falsch.


fehler meldung dazu, nachdem klicken irgend einer bt(nach erstmalige swf aufruf), geht nicht mehr.
PHP-Code:
TypeErrorError #2007: Parameter child darf nicht 'null' sein.
    
at flash.display::DisplayObjectContainer/removeChild()
    
at rem_fla::MainTimeline/erstelle() 
Angehängte Dateien
Dateityp: fla rem.fla (7,5 KB, 0x aufgerufen)

Geändert von palpalo (16-11-2011 um 14:46 Uhr)
palpalo ist offline   Mit Zitat antworten
Alt 16-11-2011, 14:48   #2 (permalink)
skylla
 
Benutzerbild von szylla
 
Registriert seit: Feb 2011
Beiträge: 166
hi,
ich hab mir das jetzt nicht näher angeschaut.
aber was kommt denn raus wenn du ein trace an der stelle hier einfügst?
PHP-Code:
/// lösche verherige clips
    
for(var r:uint=0r<alteZahlr++){
        
trace(my_mc_array[r]);
    } 
cu,
szylla
szylla ist offline   Mit Zitat antworten
Alt 16-11-2011, 14:50   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von palpalo Beitrag anzeigen
PHP-Code:
var my_mc_array_alt:Array = new Array();
my_mc_array my_mc_array_alt
Nach diesen beiden Anweisungen ist my_mc_array immer leer. Und ein beliebiger Index eines leeren Arrays ist nunmal null.
__________________
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 gerade online   Mit Zitat antworten
Alt 16-11-2011, 15:46   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
so klappt es

PHP-Code:
removeChild(getChildByName("mc_"+[r])); 
wenn aber der mc ein unter objekt ist klappt trotzdem mit der byName nicht mehr.
palpalo ist offline   Mit Zitat antworten
Alt 16-11-2011, 15:59   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Nach diesen beiden Anweisungen ist my_mc_array immer leer. Und ein beliebiger Index eines leeren Arrays ist nunmal null.
wieso ist es null, an falscher stelle intializiert?
bzw. wie ist es richtig.
palpalo ist offline   Mit Zitat antworten
Alt 16-11-2011, 16:10   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von palpalo Beitrag anzeigen
wieso ist es null, an falscher stelle intializiert?
Lies nochmal was ich geschrieben habe!

Zitat:
Zitat von palpalo Beitrag anzeigen
bzw. wie ist es richtig.
Versuch's mal so:
PHP-Code:
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;

var 
activeMcs:Array = [];

function 
erstelle(evt:MouseEvent):void {
    var 
mc:MovieClip;
    var 
hg:Sprite;
    
    
// Alte MCs entfernen
    
for each(mc in activeMcs) {
        if (
mc.parentmc.parent.removeChild(mc);
    }
    
    
// Array zurücksetzen
    
activeMcs = [];

    
// ermittle bt id, um zugehörige anzahl von clip zu erstellen
    
var id:uint Number(evt.target.name.split("_")[1]);    
    
// anzahl der clip, die zu bt id gehören
    
var AnZahlArray:Array = [5,10,15];
    var 
total AnZahlArray[id 1];
    
    
// Neue MCs erzeugen
    
for(var i:uint 0i<totali++){
        
mc = new MovieClip(); 
        
mc.buttonMode true;
        
        
hg = new Sprite();
        
hg.graphics.beginFill(0x0000FF);
        
hg.graphics.drawRect(0,0,50,50);
        
hg.graphics.endFill();        
        
mc.addChild(hg);

        
mc.= (mc.height 5) * i;
        
mc.stage.stageWidth mc.width 2;
        
mc.name "mc_" i;
        
        
addChild(mc);
        
activeMcs.push(mc);
    }
}

bt_1.buttonMode true;
bt_1.addEventListener(MouseEvent.CLICK,erstelle);
bt_2.buttonMode true;
bt_2.addEventListener(MouseEvent.CLICK,erstelle);
bt_3.buttonMode true;
bt_3.addEventListener(MouseEvent.CLICK,erstelle); 
__________________
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 (16-11-2011 um 16:12 Uhr)
Martin Kraft ist gerade online   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
[Flash CS4] Remove oder unload Movieclip thbrueck Flash Einsteiger 4 12-01-2010 07:43
Remove Movieclip momento Flash MX 2004 16 10-04-2008 15:01
attache u. remove MovieClip xlive ActionScript 2 4 19-09-2007 13:24
remove movieclip funktioniret nicht elias2k3 Flash Einsteiger 10 26-02-2007 17:46
remove äh movieclip bloba ActionScript 1 5 20-08-2002 20:11


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

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


Copyright ©1999 – 2012 Marc Thiele