Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-07-2010, 11:22   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 5
Images aus Variablen überlagern sich - wie löschen?

Hallo zusammen,

ich erstelle gerade für die FH ein Flash-Projekt, bei dem ich mit AS3 per Klick auf einen Button Bilder anzeigen lasse:

PHP-Code:
movieClip_5.addEventListener(MouseEvent.CLICKfl_ClickToLoadImageFromLibrary_5);

function 
fl_ClickToLoadImageFromLibrary_5(event:MouseEvent):void
{
    var 
libImage:falls = new falls(0,0);

    var 
holder:Bitmap = new Bitmap(libImage);
    
addChild(holder);
    
holder.990;
    
holder.75;

In einer Szene werden vier solcher Bilder erstellt. Wenn ich nun in eine andere Szene springe, bleiben die Bilder der letzten Szene stehen und überlagern sich. Wie veranlasse ich Flash, bei einem Szenenwechsel die Bühne komplett zu säubern? Noch besser wäre es natürlich, wenn bei Klick auf das nächste Bild das Vorherige auch gelöscht würde, denn die Bilder überlagern sich ja (sieht man nur nicht, weil sie die gleiche Bildschirm-Position haben). Gleiches gilt für eine abgespielte MP3-Datei, die ebenfalls beim Wechsel auf die nächste Szene stoppen soll, weil dort neue Musik geplant ist. Weiss jemand Rat? Dank' Euch schon jetzt!

PS. Ich weiss, dass Szenen nicht gerne gesehen sind, aber wir sollen das Projekt halt so anlegen...

Gruß,
Raindance
Raindance ist offline   Mit Zitat antworten
Alt 23-07-2010, 12:49   #2 (permalink)
Qualmkopf
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 469
removeChild wird dir da weiterhelfen.
Striker ist offline   Mit Zitat antworten
Alt 23-07-2010, 12:53   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 5
Hmm, das habe ich schon in allen möglichen Varianten probiert. Wie genau müsste der Quelltext denn lauten? Und in welche Szene packe ich den Code - an den Anfang von Szene 2 oder an das Ende von Szene 1? Sorry - bin absoluter Flash-Newbie!
Raindance ist offline   Mit Zitat antworten
Alt 23-07-2010, 16:11   #4 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
nehmen wir an die Images werden Kinder von einem MovieClip der container heißt

Code:
if(container.numChildren >0) {
		var lastContent:MovieClip = container.removeChildAt(0);
		lastContent = null;
	}
speedjunkie ist offline   Mit Zitat antworten
Alt 23-07-2010, 16:43   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 5
Die Images sind aber Kinder von fünf verschiedenen MovieClips, da fünf verschiedene Buttons genutzt werden. Nebenbei bekomme ich bei o.g. Code die Fehlermeldung: 1118: Implizite Umwandlung von einem Wert mit statischem Typ Object in einen möglicherweise nicht verwandten Typ flash.displayisplayObject. So langsam verzweifel ich an dem Problem...
Raindance ist offline   Mit Zitat antworten
Alt 23-07-2010, 18:38   #6 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
Okay,
Flash sagt: die Datentypumwandlung
Code:
var lastContent:MovieClip = container.removeChildAt(0);
entspricht nicht dem erwartetem Datentyp. Er erwartet einen untergeordneten Datentyp. Hier die Basisklasse DisplayObject.

Code:
var lastContent:DisplayObject = container.removeChildAt(0);
speedjunkie ist offline   Mit Zitat antworten
Alt 23-07-2010, 20:56   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 5
Hallo,
ich habe mein AS3-Script nun folgendermaßen geändert:
PHP-Code:
movieClip_1.addEventListener(MouseEvent.MOUSE_OVERfl_MouseOverHandler_4);

function 
fl_MouseOverHandler_4(event:MouseEvent):void
{
    var 
libImage:lemuren = new lemuren(0,0);

    var 
holder:Bitmap = new Bitmap(libImage);
    
addChild(holder);
}


movieClip_1.addEventListener(MouseEvent.MOUSE_OUTfl_MouseOutHandler_2);

function 
fl_MouseOutHandler_2(event:MouseEvent):void
{
    if(
movieClip_1.numChildren >0) {
        var 
lastContent:DisplayObject movieClip_1.removeChildAt(0);
        
lastContent null;
    }


Nun bekomme ich beim Testen diese Fehlermeldung:
PHP-Code:
ArgumentErrorError #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
    
at flash.display::DisplayObjectContainer/removeChild()
    
at fl.controls::BaseButton/drawBackground()
    
at fl.controls::LabelButton/draw()
    
at fl.controls::Button/draw()
    
at fl.core::UIComponent/callLaterDispatcher() 
Das Einblenden der Bilddatei aus der Bibliothek funzt aber schonmal problemlos. Nu muss es nur noch wieder verschwinden!

Weiss jemand, wie's geht?
Raindance ist offline   Mit Zitat antworten
Alt 24-07-2010, 07:07   #8 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
Wie wär‘s, wenn Du alle Deine Images schon mal außerhalb der Button Funktion auf die Bühne holst und alle auf . visible = false; setzt und dann wenn mit Deinen Buttons das jenige was sichtbar werden soll auf true; und jeweils die anderen auf false.

Du kannst auch mit addChild und removeChild, jedoch bekommst Du eine Fehlermeldung, wenn Du etwas von der Bühne entfernen willst, was noch nicht da ist. Das geht auch mit try und catch.
speedjunkie ist offline   Mit Zitat antworten
Alt 24-07-2010, 20:42   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 5
Super - das funktioniert und ist eine perfekte Alternative! Vielen Dank!
Raindance ist offline   Mit Zitat antworten
Alt 27-07-2010, 19:53   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2009
Beiträge: 20
Hallo,

ich habe zur Zeit ein ganz ähnliches Problem. Und zwar möchte ich auf einer Website ein Bild extern laden lassen um es dann bei Rollover austauschen zu lassen. Das klappt auch ganz super nur sind die Bilder dann auf allen Seiten zu sehen und verschwinden nicht mehr. Wie müsste der code aussehen wenn ich sie wieder ausblenden möchte? Ich habe das mit „visible” nicht hinbekommen.

Code:
var i = new Loader();

//erstes Bild laden
laden()

function laden() {
	i.load(new URLRequest("bilder_leistungen/leistungenpic.jpg"))
	this.addChild(i);
	i.x=315
	i.y=250
}

// Sub-Navigation - Seitenaufruf
this.fotografie_btn.addEventListener(MouseEvent.CLICK, subnavigation);
this.grafikdesign_btn.addEventListener(MouseEvent.CLICK, subnavigation);
this.film_btn.addEventListener(MouseEvent.CLICK, subnavigation);

function subnavigation (event:MouseEvent) :void {
	if (event.target.name=="fotografie_btn") {
		gotoAndStop("fotografie");
	} else if (event.target.name=="grafikdesign_btn") {
		gotoAndStop("grafikdesign");
	} else if (event.target.name=="film_btn") {
		gotoAndStop("film");
	}
}

//Subnavigation - Bild-Rollover

this.fotografie_btn.addEventListener(MouseEvent.MOUSE_OVER, bildladen);
this.grafikdesign_btn.addEventListener(MouseEvent.MOUSE_OVER, bildladen);
this.film_btn.addEventListener(MouseEvent.MOUSE_OVER, bildladen);

function bildladen (event:MouseEvent) :void {
	if (event.target.name=="fotografie_btn") {
		i.load(new URLRequest ("bilder_leistungen/fotografiepic.jpg"))
		this.addChild(i);
		i.x=315
		i.y=250
	} else if (event.target.name=="grafikdesign_btn") {
		i.load(new URLRequest ("bilder_leistungen/grafikpic.jpg"))
		this.addChild(i);
		i.x=315
		i.y=250
	} else if (event.target.name=="film_btn") {
		i.load(new URLRequest ("bilder_leistungen/filmpic.jpg"))
		this.addChild(i);
		i.x=315
		i.y=250
	}
}
Wäre dankbar für jede Hilfe. Bin leider noch nicht soo firm mit AS 3.0.

Edit:

Problem wurde gelöst, ich habe die variablen jetzt auf dem ersten Schlüsselbild (der obige Code steht auf einem Sub-Menü) angelegt, inkl. der visible-Function und nun klappt es.

Geändert von Nivroc (27-07-2010 um 20:59 Uhr)
Nivroc ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
entfernen, image, löschen, variable

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
Tweens überlagern sich bloba ActionScript 2 2 22-02-2008 13:28
Buttons die sich überlagern shoei Flash Einsteiger 2 05-03-2007 13:20
Schaltflächen sollen sich überlagern MicHappe Flash MX 2004 2 06-10-2005 12:22
Die Variablen des Container löschen sich nachdem nachladen?? Analogic ActionScript 1 5 30-03-2004 16:02
Buttons überlagern sich bei der animation Psychopat Flash 4 und Flash 5 10 12-04-2002 20:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele