Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-10-2009, 13:25   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 166
removeChild mit referenzen im array und getChildByName

PHP-Code:
var sb_objArray:Array = new Array();
var 
sb_container:MovieClip = new MovieClip();
var 
sb_loc1:Number=0;
var 
ii:Number=0;
var 
i:Number=0;
var 
sb_libObj:Class;

for (
i=1i<4i++) {

    
sb_libObj=getDefinitionByName("t2book") as Class;
    var 
sb_myObj:*= new sb_libObj();
    
sb_myObj.name="sb_"+String(i);

    
//die will ich wegbekommen
    
for (ii=1ii<=4ii++) {
        var 
bxx:MovieClip=drawbox_2(10,10,100,100,0xFF0000,0xFF00FF);
        
bxx.name="bxx"+ii;
        
bxx.ii 20
        sb_myObj
.addChild(bxx);
    }

    
sb_objArray.push(sb_myObj);//referenz ins array
    
sb_container.addChild(sb_myObj);

    
sb_container.getChildByName("sb_"+i).x=sb_loc1;
    
sb_container.getChildByName("sb_"+i).y=10;
    
sb_container.getChildByName("sb_"+i).scaleX=0.50;
    
sb_container.getChildByName("sb_"+i).scaleY=0.50;
    
sb_loc1+=120;

}
addChild(sb_container);

removeChild(sb_objArray[1].getChildByName("bxx2")); 
ich habe meine die referenzen zu meinen movieclips in einem array "sb_objArray" gespeichert. wenn ich elemente mit getChildbyname entfernen will, geht das nicht.

removeChild(sb_objArray[1].getChildByName("bxx2"));

Error #2007: Parameter child darf nicht 'null' sein.

mir ist nicht klar warum?

Geändert von jav666 (21-10-2009 um 13:55 Uhr)
jav666 ist offline   Mit Zitat antworten
Alt 21-10-2009, 13:45   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich würde bxx pushen und dann direkt removen...
  Mit Zitat antworten
Alt 21-10-2009, 13:58   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 166
naja, sind ja immer x verschiedene im container. da weiß ich nie welcher index zu welcher box gehört.

aber egal:

ich hba's erst so probiert:

PHP-Code:
var sz:MovieClip=sb_objArray[1].getChildByName("bxx3") as MovieClip;
sb_objArray[1].removeChild(sz); 
oder kürzer

PHP-Code:
sb_objArray[1].removeChild(sb_objArray[1].getChildByName("bxx2")); 
man muss natürlich angeben, von wo man removen will...
jav666 ist offline   Mit Zitat antworten
Alt 21-10-2009, 14:26   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Aber das löst das Problem nicht. getChildByName kann null zurückgeben. Besser wäre so eine Lösung:
ActionScript:
  1. var index:int = 0; // or any other value
  2. var name:String = "bxx2"; // or any other value;
  3.  
  4. var child:DisplayObject;
  5. var container:DisplayObjectContainer = sb_objArray[1] as DisplayObjectContainer;
  6.  
  7. if (container)
  8.   child = container.getChildByName(name);
  9. if (child)
  10.   container.removeChild(child);
Eine auführliche Lösung aber es ist nicht unvernünftig, Laufzeitfehlern vorzubeugen.
Omega Psi ist offline   Mit Zitat antworten
Alt 21-10-2009, 14:55   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 166
PHP-Code:
if (sb_objArray[1].getChildByName(name)!=null
würde es doch auch tun?
jav666 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Code optimieren (Zugriff via getChildByName()) Meder ActionScript 3 1 20-03-2009 08:56
Anzeigeliste - getchildbyname - Frage netterkerl1981 ActionScript 3 2 28-11-2008 12:58
mc.getchildByName() nach mc.gotoAndStop() madflanderz ActionScript 3 2 03-01-2008 19:24
Problem mit Referenzen in einen Array pushen Apollo4Life Flash MX 2004 4 20-01-2006 14:17
Array speichert Objekt(-referenzen) falsch, hmm MF_ ActionScript 1 5 30-11-2005 21:48


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele