removeChild mit AS3 funktioniert nicht [Flash 9]
| Beiträge: 12 Registriert: Jun 2005
| 10.03.2010, 14:29
Hallo zusammen,
habe folgendes Problem:
benutze gerade folgendes AC3 Script:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;
buttonpr1.addEventListener(MouseEvent.CLICK, clickFunctionpr1);
function clickFunctionpr1(evt:MouseEvent):void {
var containerpr1:Sprite = new Sprite();
containerpr1.name = "eprinting1";
addChild(containerpr1);
containerpr1.y = 137;
containerpr1.x = 214;
var pngpr1Ldr:Loader = new Loader();
var pngpr1URL:String = "images/pr1.png"
var pngpr1URLReq:URLRequest = new URLRequest(pngpr1URL);
pngpr1Ldr.load(pngpr1URLReq);
pngpr1Ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, pngpr1Loaded);
function pngpr1Loaded(event:Event):void
{
containerpr1.addChild(pngpr1Ldr.content);
}
this.checkContainerspr();
stop();
}
buttonpr2.addEventListener(MouseEvent.CLICK, clickFunctionpr2);
function clickFunctionpr2(evt:MouseEvent):void {
var containerpr2:Sprite = new Sprite();
containerpr2.name = "eprinting1";
addChild(containerpr2);
containerpr2.y = 137;
containerpr2.x = 214;
var pngpr2Ldr:Loader = new Loader();
var pngpr2URL:String = "images/pr2.png"
var pngpr2URLReq:URLRequest = new URLRequest(pngpr2URL);
pngpr2Ldr.load(pngpr2URLReq);
pngpr2Ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, pngpr2Loaded);
function pngpr2Loaded(event:Event):void
{
containerpr2.addChild(pngpr2Ldr.content);
}
this.checkContainerspr();
stop();
}
var containerpr:Array = new Array("eprinting1");
function childOnStagepr( name:String ):Boolean{
return this.getChildByName( name ) != null && this.getChildByName( name).parent != null ? true : false;
}
function checkContainerspr():void{
for( var i:uint = 0; i < this.container.length; i++){
if( childOnStagepr( this.container[i] ) ){
removeChild( this.getChildByName( this.container[i] ) );
}
}
}
|
doch irgendwie will Flash mir den container nicht leeren, wenn ich auf den verschiedenen Buttons(buttonpr1 und buttonpr2) klicke.
Hat jemand hierzu einen Tip für mich?
Vielen Dank im voraus.
Lg
Koyo | | | Beiträge: 12 Registriert: Jun 2005
Themenautor/in
| 11.03.2010, 09:51
hmm hat hierzu keiner eine Idee? :-/
find irgendwie den Fehler nicht ...
lg
Koyo | | | Beiträge: 186 Registriert: Jun 2009
| 11.03.2010, 10:04
hmmm...
hast du mal versucht, statt
zu schreiben? | | | Beiträge: 5285 Wohnort: Bernau (bei
Berlin) Registriert: Nov 2002
| 11.03.2010, 10:15
ActionScript:1 | for( var i:uint = 0; i < this.container.length; i++){
|
Wo wird das Array container erstellt und gefüllt? | | | Beiträge: 159 Registriert: Apr 2005
| 11.03.2010, 10:39
Dein Problem liegt hier.
1. Wer zum Geier ist container, du meintest bestimmt den containerpr
ActionScript:1 2 3 4 5 6 | function checkContainerspr():void{
for( var i:uint = 0; i < this.container.length; i++){
if( childOnStagepr( this.container[i] ) ){
removeChild( this.getChildByName( this.container[i] ) );
}
}
|
Es könnte also so aussehen. Ich habe mir erlaubt deine childOnStagepr auch zu ändern. Du wirst aber sehen, dass dies auch nicht zum gewünschten ergebnis führt, da du zuerst die container füllst und dann wieder löschst. Kleiner Tipp: merke dir doch die container (Sprites) im Array und nicht die Namen, dann könne man sagen containerpr[i].parent.removeChild(containerpr[i]). Ist natürlich noch die Frage, wo du hinwillst, wo sagst du dem Array später welche objekte gelöscht werden sollen, gibt es immer nur einen oder mehrere etc....
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 | function childOnStagepr( name:String ):DisplayObject{
return this.getChildByName( name ) || this.getChildByName( name).parent;
}
function checkContainerspr():void{
for( var i:uint = 0; i < this.containerpr.length; i++){
var removeMe:DisplayObject = childOnStagepr( this.containerpr[i]);
if( removeMe != null ){
this.removeChild(removeMe);
}
}
}
|
PS: kleiner Fehler bei mir, sehe gerade this.getChildByName( name).parent der kann in checkContainerspr natürlich so nicht gelöscht werden. Ich werde das jetzt nicht ändern, da ich nicht genau verstehe, was du damit bezwecken willst.----------------------------------------------
www.flashdevelop.de | Geändert von KingKhong am 11.03.10 um 10:47 Uhr | |
|
| Ähnliche Beiträge zum Thema | 15.04.2021 - hansi24 23.10.2020 - Skynetzx 02.11.2020 - frliberti 05.10.2020 - Rrxxqg |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|