Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2006, 15:04   #1 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Löschen von MC klappt nicht mehr

Hey Leutz,

bin am verzweifeln - bestimmt wieder so'n doofer Fehler... Ich fang mal an...

Ich erstelle einen MC, der Linien enthält. Nun ändert sich eine Bildgröße, also müssen sich die Linien wieder ändern. So will ich den MC mit den Linien löschen und neu erstellen.

Ich erstelle ihn so:

Code:
function drawlines(mc:MovieClip, movex:Number, movey:Number, picwidth:Number, picheight:Number) {
	if(mc == _root) {
		thisMC = mc.createEmptyMovieClip("mc_bigborder", random(999999999));
	} else {
		thisMC = mc.createEmptyMovieClip("mc_line"+_global.countborder, random(9999999));
	}
	thisMC.lineStyle(2, 0xFFFFaF, 100);
	thisMC.moveTo(movex, movey);
	thisMC.lineTo(movex+picwidth, movey);
	thisMC.lineTo(movex+picwidth, movey+picheight);
	thisMC.lineTo(movex, movey+picheight);
	thisMC.lineTo(movex, movey);
}
Wenn ich ihn jetzt mit

Code:
mc_bigborder.removeMovieClip();
oder

Code:
removeMovieClip(mc_bigborder);
löschen will, lacht er mich förmlich aus... *snief*

Wo liegt der Fehler. Danke!
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:19   #2 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Hi, du übergibst doch an deine Funktion auch einen Movieclip und generierst den MC mittels
PHP-Code:
mc.createEmptyMovieClip("mc_bigborder"random(999999999)); 
Müsstest du dann nicht auch beim removen den übergebenden MC mit berücksichtigen, also so ala
PHP-Code:
mc.mc_bigborder.removeMovieClip(); 
richtsteiger ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:23   #3 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
nein, das "mc" in der Funktion dient zum Malen auf "_root" oder in der "thumbbar".

Und wenn ich _root.remove.... eingebe, klappts auch nicht.
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:26   #4 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Könntest du mal bitte auch den Code um den removeMovieClip()-Aufruf herum zeigen? Steht das auch irgendwo in 'ner function oder wo bzw. wann willst du removen?
richtsteiger ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:32   #5 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Ok,

also, gezeichnet wird der Rahmen (mc_bigborder) beim einlesen der XML-Datei und der Größe des ersten Bildes - und zwar so

Code:
drawlines(thumbbar, newThumb._x, newThumb._y, Number(images[i].attributes.thumbwidth), Number(images[i].attributes.thumbheight));
Dann steht die Linie. Klicke ich jetzt auf ein Thumbnail, will ich den Rahmen löschen, damit ich einen neuen zeichnen kann (für den Fall, dass das nächste Bild andere Dimensionen hat).

Code:
newThumb.onRelease = function() {
_root.mc_bigborder.removeMovieClip();
---oder---
removieMovieClip(_root.mc_bigborder);
...ganz viele Aktionen...
Joa... das war's eigentlich. Hab auch schon getestet, ob der Clip geladen wurde:

Code:
mc_bigborder.onEnterFrame = function() {
if(mc_bigborder._width > 0) {
this.removeMovieClip();
}
Aber auch nix...
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:45   #6 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Du rufst die Funktion drawlines mittels
PHP-Code:
drawlines(thumbbarnewThumb._xnewThumb._yNumber(images[i].attributes.thumbwidth), Number(images[i].attributes.thumbheight)); 
In deiner Funktion steht nun aber
PHP-Code:
if(mc == _root) {
        
thisMC mc.createEmptyMovieClip("mc_bigborder"random(999999999));
    } else {
        
thisMC mc.createEmptyMovieClip("mc_line"+_global.countborderrandom(9999999));
    } 
Kann es da nun nicht sein, dass der MC gar nicht "mc_bigborder", sondern "mc_line0" oder so heißt. Also kannst du auch nicht mittels
PHP-Code:
mc_bigborder.removeMovieClip(); 
den MC removen. Schau dir doch mal die auf der Bühne vorhandenen Objekte an. Gibt's denn den mc_bigborder überhaupt?
Änder doch ma in der Funktion die If-Abfrage in
PHP-Code:
if(mc != _root) { 
Dann solltest du auch den mc_bigborder auf der Bühne haben und dein removeMovieClip() funktioniert.
richtsteiger ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:50   #7 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Ok, habe ich getestet!

Ich kann keine (!), auch nicht die mc_line0, löschen. Was ist da los? Der ignoriert das immer!
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:56   #8 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Lass dir doch mal, wenn du die fla in Flash testest, die auf der Bühne vorhandenen Objekte auflisten. Geht im Vorschaufenster über "Debuggen -> Objekte auflisten". Dort siehst du ja, welche Objekte auf der Bühne sind und welchen absoluten Pfad sie haben. Vielleicht hilft dir das weiter.

PS: Sorry, bin schon fast zu spät dran, sonst verpass ich noch meinen Flieger. Falls du dennoch nicht weiterkommst, hilft dir das Forum hier bestimmt weiter. Ansonsten müsstest du dich leider bis Montag gedulden. Nice Weekend.
richtsteiger ist offline   Mit Zitat antworten
Alt 11-08-2006, 15:59   #9 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Ok danke!

Viel Spaß in ... wo auch immer *g* ... und sei vorsichtig!
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 16:01   #10 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Na toll:

mit

Code:
_level0.mc_bigborder._x = 10;
kann ich ihn verschieben...*ironiedesschicksals*
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 16:25   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Als Tiefe also random(999999999)?
Aber sonst geht's dir gut, ja...

PHP-Code:
_level0.mc_bigborder.swapDepths(1000)
_level0.mc_bigborder.removeMovieClip() 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-08-2006, 16:29   #12 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 123
Hey danke!

Funzt einwandtfrei! Wie man's von dir kennt.

Hab sonst aber immer getNextHighestDepth() verwendet. Doch dort konnte ich das nicht machen, da sonst das Bild über dem Rahmen liegt. Egal!

Kannst du mir den Code von dir unten nochmal erklären, bitte??
Phantom1410 ist offline   Mit Zitat antworten
Alt 11-08-2006, 16:38   #13 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Du kannst nur MCs removen, die auf einer positiven Tiefe liegen und diese darf auch nicht in astronomische Höhen gehen (genauen Wert weiß ich gerade nicht).
Und natürlich kannst du z.B. getNextHighestDepth() benutzen. Mit swapDepths() kannst du ja die Tiefen ändern. Übrigens ist random (was auch immer) keine Garantie dafür, dass das Bild immer unten liegt.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 18:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele