Volledige versie bekijken : removeMovieClip werkt niet ondanks..
seba28976
%Europe/Berlin %406 %2007, 09:45
Hallo allemaal..
Ik zit nu al enkele dagen te sukkelen met de removeMovieclip..
Ik heb hier in het forum al diverse zakens zien passeren en heb alles netjes opgevolgd.
Ik heb een MC Blurbox0 genaamd. In mijn attachmovie roep ik deze op via een for lus.
Het tonen van die MC is geen probleem. Nu komt het. Ik heb bij het verwijderen wel problemen.
Ondank het feit dat ik een variabele heb gedefinieerd en getraced en hij wel degelijk de correct naam toont doet hij niet de functie die ik vraag. Als ze terug op de foto klikken wil ik die MC blurbox0 terug doen verdwijnen. Ik heb dus bij het verwijderen een var gemaakt
blu = blurbox+[i] (staat in for lus - voor xml file) Als ik deze trace inderdaad krijg ik blurbox0.
Nu heb ik geprobeerd blu.removeMovieClip(); en dit lukt niet. Moet ik misschien iets voor zetten.. Ik weet het niet meer.. Alvast bedankt voor de hulp..
Sebastien..
r0cker20
%Europe/Berlin %427 %2007, 10:15
als een movieclip boven een bepaalde diepte komt ergens in de 100000 ofzo dan is hij niet meer te verwijderen met enkelt removeMovieClip(); maar moet je de movieclip eerst terug brengen binnen het bereik van die functie door dit te doen:
instance_mc.swapDepths(1000);
instance_mc.removeMovieClip();
Vin-E
%Europe/Berlin %428 %2007, 10:17
Misschien helpt dit:
_root["blurbox" + i].removeMovieClip();
seba28976
%Europe/Berlin %446 %2007, 10:43
Heb beiden geprobeerd maar helaas.. wil ik misschien mijn as es online zetten.
Hier is het dan.. +- in het midden vind je de code van blublu (var) terug.. deze wens ik te verwijderen..
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
var numofitems:Number;
var radiusx:Number = 400;
var radiusy:Number = 100;
var centerx:Number = Stage.width / 2;
var centery:Number = Stage.height / 2;
var speed:Number = 0.01;
var perspec:Number=10;
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
var xml:XML = new XML();
var home:MovieClip = this;
thetext._alpha = 0;
back._alpha = 0;
xml.ignoreWhite = true;
xml.load("outdoorfotos.xml")
xml.onLoad = function()
{
var nodes = this.firstChild.childNodes;
numofitems = nodes.length;
for (var i=0;i<numofitems;i++)
{
var t = home.attachMovie("schaduw","schaduw"+i,i+1);
t.angle = i * ((Math.PI*2)/numofitems);
t.onEnterFrame = mover;
t.tooltext = nodes[i].attributes.tooltip;
t.content = nodes[i].attributes.content;
t.outdoorfoto.inner.loadMovie(nodes[i].attributes.image);
t.reflex.inner.loadMovie(nodes[i].attributes.image);
t.outdoorfoto.onRollOver = over;
t.outdoorfoto.onRollOut = out;
t.outdoorfoto.onRelease = released;
}
}
function over ()
{
home.tooltip.tiptext.text = this._parent.tooltext;
home.tooltip.onEnterFrame = Delegate.create(this,movetip);
home.tooltip._alpha = 100;
}
function out ()
{
delete home.tooltip.onEnterFrame;
home.tooltip._alpha = 0;
}
function released ()
{ home.tooltip._alpha = 0;
_root.assortiment.outdoor.indbtn._visible = false;
_root.assortiment.outdoor.outdbtn._visible = false;
for (var i=0;i<numofitems;i++)
{var t:MovieClip = home["schaduw"+i];
t.xpos = t._x;
t.ypos = t._y;
t.thescale = t._xscale;
delete t.outdoorfoto.onRollOver;
delete t.outdoorfoto.onRollOut;
delete t.outdoorfoto.onRelease;
delete t.onEnterFrame;
if (t != this._parent)
{var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
}
else
{ _root.assortiment.outdoor.car.thetext._visible = true;
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,150,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,150,1,true);
var tw5:Tween = new Tween(thetext,"_alpha",Strong.easeOut,0,100,1,true);
var tw6:Tween = new Tween(back,"_alpha",Strong.easeOut,0,100,1,true);
thetext.text = t.content;
var blbox:MovieClip = this.attachMovie("blurbox"+[i],"blurbox"+[i],500);
blbox._x = 180;
blbox._y = 550;
blbox._xscale = 200;
blbox._yscale = 200;
var s:Object = this;
tw.onMotionStopped = function()
{s.onRelease = unreleased;
}
}
}
}
function unreleased()
{ delete this.onRelease;
_root.assortiment.outdoor.car.thetext._visible = false
_root.assortiment.outdoor.indbtn._visible = true;
_root.assortiment.outdoor.outdbtn._visible = true;
var twtext:Tween = new Tween(thetext,"_alpha",Strong.easeOut,100,0,0.5,true);
for (var i=0;i<numofitems;i++)
{var t:MovieClip = home["schaduw"+i];
if (t != this._parent)
{var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.thescale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.thescale,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
}
else
{var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.thescale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.thescale,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xpos,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.ypos,1,true);
blublu = ("blurbox"+[i]);
blublu.removeMovieClip();
// _root["blurbox" + i].removeMovieClip();
tw.onMotionStopped = function()
{for (var i=0;i<numofitems;i++)
{var t:MovieClip = home["schaduw"+i];
t.outdoorfoto.onRollOver = over;
t.outdoorfoto.onRollOut = out;
t.outdoorfoto.onRelease = released;
t.onEnterFrame = mover;
}
}
}
}
}
function movetip()
{
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y + 20;
}
tooltip._alpha = 0;
function mover ()
{ this._x = Math.cos(this.angle) * radiusx + centerx;
this._y = Math.sin(this.angle) * radiusy + centery;
var s:Number = (this._y-perspec) /(centery+radiusy-perspec);
this._xscale = this._yscale = s*100;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale) + 100);
tooltip._x = Math.cos(tooltip.angle) * radiusx + centerx;
tooltip._y = Math.sin(tooltip.angle) * radiusy + centery;
var o:Number = (tooltip._y-perspec) /(centery+radiusy-perspec);
tooltip._xscale = tooltip._yscale = o*100;
tooltip.angle += tooltip._parent.speed;
tooltip.swapDepths(Math.round(tooltip._yscale) + 100);
}
this.onMouseMove = function()
{
speed = (Math.abs(this._xmouse-centerx)>20)?(this._xmouse-centerx)/10000:0;
}
stop();
seba28976
%Europe/Berlin %447 %2007, 10:43
Kan iemand mij es vlug zeggen hoe ik die AS tussen quotes moet plaatsen zodoende geen overbodige plaats te verliezen.. Dank U
Vin-E
%Europe/Berlin %461 %2007, 11:04
[*as] .. [*/as]
* mag weg.
Staat er toch echt bij..
seba28976
%Europe/Berlin %546 %2007, 13:06
Niemand die ideetje heeft...
Breen
%Europe/Berlin %558 %2007, 13:24
wel, als ik lokaal blublu = ("blurbox"+[i]); probeer, is blublu bij mij een gewone string, die toevallig idd hetzelfde is als de naam van de movieClip, maar verder daar geen enkele relatie mee heeft. Ik zie dat je _root['blurbox'] ook probeert, maar dat werkte natuurlijk ook niet. In "released" attach je de blurbox aan "this", wat natuurlijk naar de "t.outdoorfoto.onRelease = released;" wijst.
Het probleem is niet dat removeMovieClip(); niet werkt, je hebt gewoon geen geldige referentie naar de movieclip die je probeert te deleten :).
Kortom, je script is nogal rommelig, en moeilijk wijs uit te geraken. Pas de attach in "released" misschien aan, om te attachen aan de _root, maar wat voor andere gevolgen dat gaat hebben, kan ik zo niet zeggen.
seba28976
%Europe/Berlin %596 %2007, 14:19
heb ik geprobeerd maar het removen heeft da net hetzelfde probleem..
Het is waarschijnlijk iets heel stom maar ik word er horendol van...
Ik heb dus die this veranderd door _root.
In de removeMC heb ik dan uiteraard ook _root... maar noppes..
Je spreekt van de referentie van die MC maar hoe maak ik een geldig ref?
Wie helpt me uit deze hel...
Breen
%Europe/Berlin %606 %2007, 14:33
de plaats waar je te removeMovieClip doet, trace daar wat er voor de .removeMovieClip(); staat. Dat moet iets zijn in deze stijl -> _level0.blurbox1 dan heb je een geldige referentie naar de movieclip. Alle andere waarden zijn niet goed.
seba28976
%Europe/Berlin %611 %2007, 14:41
Ik heb de waarde getrace bij het attachen en dat was:
_level0.assortiment.outdoor.car.schaduw0.outdoorfo to.blurbox0
Nu heb ik dus het volgende aangepast bij de remove:
blublu = (("_level"+[i])+(".assortiment.outdoor.car.schaduw"+[i])+(".outdoorfoto.blurbox"+[i]));
blublu.removeMovieClip();
Dit geeft weer als resultaat identiek als de trace bij het attachen. toch verdwijnt mijn MC niet...
Breen
%Europe/Berlin %618 %2007, 14:50
Natuurlijk, want die (("_level"+[i])+(".assortiment.outdoor.car.schaduw"+[i])+(".outdoorfoto.blurbox"+[i])); is gewoon een string, net hetzelfde als "hallo" dat is ook een string. De ( & ) zorgen er gewoon voor dat je die bewerking uitvoert voor je enige andere bewerking uitvoert (zoals de +'en).
Verander je script naar het volgende:
blublu = _root.assortiment.outdoor.car["shaduw"+i].outdoorfoto["blurbox"+i];
blublu.removeMovieClip();
Dit is zeker geen volledig werkend commando, omdat van je bewerking hierboven niet echt veel zinnig is te maken. Het lijkt alsof je dit script van ergens anders hebt gehaald, en echt geen idee hebt wat er eigenlijk allemaal gebeurd (ik kan verkeerd zijn, neem dit aub niet op als een belediging, want we moeten allemaal leren). Bijvoorbeeld: "level+i" is onzinnig, want alles wat jij ooit doet momenteel zal op level0 staan. Begrijp eerst je code, voor je probeert dingen aan te passen.
seba28976
%Europe/Berlin %625 %2007, 15:00
Dat het script niet van mij is klopt.. geef ik ook toe hoor.. is van een tutorial en inderdaad ik probeer het te begrijpen maar vooral het verschil tussen levels en depths enz.. versta ik niet goed.. Ik doe echt wel mijn best hoor.. ik probeer vanalles eerst uit vooraleer ik het op het forum vraag.. Je oplossing heb ik net getest maar helaas..
Wil ik anders es de site online zetten dat je het kan zo testen.. Mijn fla en toebehoren is wel groter dan 2mb. Enig idee waar ik het kan tijdelijk storen om u teogang te geven..
Misschien moet ik ook toelichten wat ik wens te bekomen...
Als je naar de site ga die ik mee bezig ben zie je dus die startcarroussel. Als je op een foto kik met name de foto naast de box in de carroussel zie je een kader met 3 vakjes.. Dit is hetgeen geattacheerd word. Uiteraard moet dit weer verdwijnen als ik hierop klik. Dit is hetgeen ik wens te bekomen.
http://www.overstockbelgium.be/intro/index.html
En wederom is mijn dank zeer groot..
Breen
%Europe/Berlin %633 %2007, 15:11
Geen probleem, ik probeer je ook maar te helpen :). Ben wat dieper op je script aan het ingaan, probeer het volgende eens:
blublu = this["blurbox"+i]);
trace(blublu);
blublu.removeMovieClip();
Laat even weten wat dat net traced. Als dat niet werkt, vrees ik echt dat je script al te ver heen is om nog te redden. Je kan misschien met een propere lei herbeginnen vanaf je tutorial dan?
seba28976
%Europe/Berlin %639 %2007, 15:21
Dit levert terug de waarde _level0.assortiment.outdoor.car.schaduw0.outdoorfo to.blurbox0 op..
Ik zou dit kunnen maar vrees ervoor.. ik heb al zoveel aanpassingen gedaan om die netjes te krijgen... Enkele die 'stomme' attach lukt niet.. Pardon de language...
Toch bedankt alvast voor alle hulp..
Begrijp eigenlijk niet hoe het komt dat ondanks het feit dat de naam iedentiek is hij toch niet verwijderd. Kan dit te maken hebben met de depth.. Ik heb het wel al gerpobeerd op minder. nu staat hij op 10001 en had hem es op 500 gezet...
Breen
%Europe/Berlin %641 %2007, 15:23
wel, maar dat is prachtig, dat is alvast een goede referentie naar de movieclip. Wordt hij nu uiteindelijk verwijderd?
seba28976
%Europe/Berlin %642 %2007, 15:25
http://rapidshare.com/files/21319193/Website.zip.html
Heb toch de ganse site even online gezet.. misschien wat duidelijker dan..
seba28976
%Europe/Berlin %644 %2007, 15:27
MAAAAAAAAAR JAAAAAAAAAA..
Weet je ik was zodanig naar die trace aan het kijken dat ik niet had gezien dat het werkte... FAAAAAAAAANTASTISCH.. you made my weekend..
Als ik U ooit kan helpen met iets.. zijnde dan waarschijnlijk geen flash aangezien je er meer van kent dan ik.. give me a call...
Indien nodig mag ik u nog een vraag stellen.. dan zou ik een berichtje zenden...? Ik wil u wel niet storen .. dus indien liever niet geen probleem...
Thnx Seba
Breen
%Europe/Berlin %690 %2007, 16:34
Wooohooo :), post maar een thread gewoon, dan heeft iedereen er nog wat aan ;), ik help indien ik kan.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.