Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-10-2006, 15:11   #1 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
movieClip aus Library laden, löschen und wieder laden

Ich möchte mit attachMovie einen MC aus der Library auf die Bühne bringen, ihn bei einem Event löschen und später dann wieder laden. So sieht das aus:
Code:
// alarm bei Event 1
d = 0;
_root.attachMovie("alarm", "alarm_1", d++);
	_root["alarm_1"]._x = 200;
	_root["alarm_1"]._y = 100;
später, ausgelöst durch einen Event, soll der Clip wieder gelöscht werden:
Code:
// Event 2 stellt alarm ab
_root["alarm_1"].unloadMovie();
danach sollte Event 1 wieder den alarm auslösen können. Bei .unloadMovie() ist der MC zwar sichtbar weg von der Bühne, aber immer noch nachweisbar:
Code:
trace (alarm_1); // ergibt: _level0.alarm_1
das bedeutet Probleme beim wiederladen – der Clip erscheint zwar, aber _x_y lässt sich nicht mehr beeinflussen. Mit .removeMovieClip() passiert gar nichts.

Was ist der Trick an der Sache?
zeroval ist offline   Mit Zitat antworten
Alt 03-10-2006, 15:23   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

_root.alarm1.removeMovieClip() muss aber klappen. Sonst poste mal die Datei.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-10-2006, 15:23   #3 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
deutsch löschen = englisch delete

ergo

PHP-Code:
delete alarm_1
allerdings ist es unschön "meiner ansicht nach" einen "film wieder zum leben zu erwecken"

du könntest ihn unsichtbar machen mit film._visible = false; oder ich würde ihn jedesmal "neu nummerieren" und ihn auf die nächst höhere eben laden aber ihn immer wieder gleich zu bennen stell dir vor du willst als pflegeeltern fungieren und nimmst 30 findelkinder (nacheinander) auf die alle noch keinen namen haben und die du alle gleich benennst.... denkst du nicht das du irgendwann dureinander kommst?
ballaballa ist offline   Mit Zitat antworten
Alt 03-10-2006, 15:39   #4 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
Normalerweise würde ich dies auch über _visible lösen, nur im Innern von alarm läuft eine Animation mit (ebenfals über attach erstellten) konzentrischen Kreisen, die aus dem Zentrum ausströhmen. Wenn ich also den Clip über _visible = true; einschalte, erscheinen alle Kreise auf einmal, anstatt aus der Mitte langsam zu wachsen.

delete alarm_1; zeigt keinen Effekt.
zeroval ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:21   #5 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
Soviel ich weiss, kann "delete" nur Funktionen löschen, aber keine MovieClips. Liege ich falsch?
zeroval ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:23   #6 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
hmm dann sollten wirs so machen wie derFrager meinte..... enwder versucht du bitte seine lösng oder lädst mal das script hoch
ballaballa ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:38   #7 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
Liegt definitiv an den Kreisen, die innerhalb von alarm über .attachMovieClip() geladen werden. Die Datei ist angehängt.

Seht Ihr eine direkte Lösung mit den bestehnden Elementen? Ansonsten muss ich entweder den alarm anders animieren oder einen leeren MC auf die Ebene des alarm laden.
Angehängte Dateien
Dateityp: zip attach-delete_MovieClip.zip (5,7 KB, 7x aufgerufen)
zeroval ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:44   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890

PHP-Code:
_root.onMouseUp = function() {
    if (!
da) {
        
_root.attachMovie("alarm""alarm1"1, [_x 100_y 100]);
        
da true;
    } else {
        
trace ("else");
        
_root.Symbol1.removeMovieClip();// Symbol1 ???????????
        
da false;
    }

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:48   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Hier ist auch ein Fehler, ändere das mal in:
PHP-Code:
_root.attachMovie("alarm""alarm1"1, {_x100_y100} ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 03-10-2006, 16:56   #10 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
Vielen Dank, Jungs. So gehts:
Code:
_root.onMouseUp = function() {
	if (!da) {
		_root.attachMovie("alarm", "alarm1", 1, {_x: 100, _y: 100});
		da = true;
	} else {
		_root.alarm1.removeMovieClip();
		da = false;
	}
}
Am removeMovieClip() liegts also nicht. Jetzt muss ich mal im gesamten Dokument nach dem Fehler suchen. Besten Dank nochmals!
zeroval ist offline   Mit Zitat antworten
Alt 03-10-2006, 17:32   #11 (permalink)
Durchschnitt
 
Registriert seit: Jul 2004
Beiträge: 89
Habe den Fehler im gesamten Film gefunden und Poste hier, damit alle sehen, welche Fehler man machen kann:

Drei Clips lagen bereits auf der Bühne:
Code:
formen = new Array();
formen = ["form1", "form2", "form3"];
Jede kann einen alarm erstellen und tauscht dann die Depth mit alarm, damit der hinter der jeweiligen Form liegt. Also etwas wie:
Code:
_root.attachMovie("alarm", "alarm_"+form, ++d, {_x: _root[form]._x, _y: _root[form]._y});
_root["alarm_"+form].swapDepths(_root[form]);
Natürlich waren alle Formen auf derselben Ebene, was den Player verwirrte. Ich musste also zu Anfang die Formen auf verschieden Ebenen legen:
Code:
for (i in formen) {
_root[formen[i]].swapDepths(++d);
}
Dann klappts. (Code oben stammt nicht aus dem Original, sonder aus meinem Kopf und könnte fehlerhaft sein – aber das Prinzip zählt).
zeroval 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 23:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele