PDA

Volledige versie bekijken : Dynamische movieclips klikbaar maken


Burgwal39
%Europe/Berlin %709 %2005, 18:01
Ik probeer door middel van php & mySQL een aantal movieclips te genereren (zoveel als dat er plaatjes in een database staan). Dan wil ik dat al ik op deze plaatjes klik deze in een andere movieclip weergegeven worden. Uiteindelijk moeten er dan ook tekst in een tekstveldje geladen worden en dergelijke. Het probleem is dat ik de plaatjes (movieclips kan maken, maar dat ik ze niet "klikbaar krijg".
&aantalartikelen=2&naam1=spaarpot.jpg&naam2=vaas.jpg zijn de variabelen die ik terug krijg uit de php en heb verder alles toegevoegd zelfs de database. Kan iemand me uitleggen hoe ik van mijn movieClips "buttons" maak?

psychogene
%Europe/Berlin %608 %2005, 15:36
ey

ik zit met hetzelfde probleem.
Weet iemand hier een oplossing voor?

grts

gbolssens
%Europe/Berlin %625 %2005, 16:00
gewoon zo:

mijn_mc.onRelease = function() // onPress kan ook
{
// zet hier je code wat er moet gebeuren als je erop geklikt hebt
}



Zeker niet onMouseUp of onMouseDown gebruiken, want dat reageert op elke plaats waar je klikt over heel de stage, niet alleen boven de mc.

greetz,
GB

psychogene
%Europe/Berlin %662 %2005, 16:54
-had het zo al geprobeert, maar werkt niet.
volgens mij is er een probleem dat ik de movieclip niet juist aan spreek. (bevinden zich op verschillende levels.)
hier is de code die ik heb.


var x:XML = new XML();
x.ignoreWhite = true;

var thumb_url:Array = new Array();
var url:Array = new Array();
var opmerking:Array = new Array();


x.onLoad = function() {
var fotos:Array = this.firstChild.childNodes;

for(i=0; i<fotos.length; i++){
thumb_url.push(fotos[i].attributes.thumb_url);
url.push(fotos[i].attributes.url);
opmerking.push(fotos[i].attributes.opmerking);
attachMovie("holder", "holder"+i,i);
eval("holder"+i).loadMovie(thumb_url[i]);
eval("holder"+i)._x = 10;
eval("holder"+i)._y = 10 + (i*160);
}

}

x.load("fotoalbum.xml");


hoe kan ik de fotos die ik zo op de stage bekom aanspreken. en klikbaar maken?

Grts

gbolssens
%Europe/Berlin %668 %2005, 17:03
Probleem zit 'm in je for- lus. Lees mijn post van deze ochtend er maar eens op na op een ander topic:
http://www.flashfocus.nl/forum/showthread.php?t=3438


kort samengevat: for-lus in een event handler werkt niet, omdat de executie van die for-lus veel sneller gaat dan dat je ebvent handler getriggered wordt. Stel dat huppeldepup.length gelijk is aan 13. Dan is in alle gevallen i==14 en niet 1,2,3,4,5,6,.......

Als er nog iets niet duidelijk is, laat het me dan zeker weten, dan geef ik (of iem. anders) nog wat extra uitleg.

greetz,
GB

psychogene
%Europe/Berlin %683 %2005, 17:24
hier ben ik even niet mee.

met de for-loop zorg ik toch gewoon dat de fotos op een bepaalde plaats op het scherm getoont worden.
en ik krijg al mijn fotos te zien. Dus deze wordt volledig doorlopen.
iedere foto heeft nu toch ook een ander instance naam. bv holder5

kan ik deze dan niet klikbaar maken door: (moet er rekening gehouden worden met het _level?)

het juiste path.holder5.onRelease = function(){
......

}

maar wat is dan het juiste path?

Of zit er toch een fout in de loop?

Grts

gbolssens
%Europe/Berlin %692 %2005, 17:36
als de instance name hetJuistePath gebruik maakt van de lusvariabele (in veel gevallen i) dan heb je het "aan je rekker". Dat is, als de definities van de onRelease in die for-lus staan.

greetz,
GB

psychogene
%Europe/Berlin %708 %2005, 18:00
en hoe kan ik dit dan oplossen?

The_One
%Europe/Berlin %791 %2005, 19:59
hoi,

Je kan gewoon dit doen:
var x:XML = new XML();
x.ignoreWhite = true;

var thumb_url:Array = new Array();
var url:Array = new Array();
var opmerking:Array = new Array();


x.onLoad = function() {
var fotos:Array = this.firstChild.childNodes;

for(i=0; i<fotos.length; i++){
thumb_url.push(fotos[i].attributes.thumb_url);
url.push(fotos[i].attributes.url);
opmerking.push(fotos[i].attributes.opmerking);
attachMovie("holder", "holder"+i,i);
eval("holder"+i).loadMovie(thumb_url[i]);
eval("holder"+i)._x = 10;
eval("holder"+i)._y = 10 + (i*160);
this["holder"+i].onRelease = function(){
trace(this._name);
// oid
}
}

}

x.load("fotoalbum.xml");

suc6 :)!

psychogene
%Europe/Berlin %834 %2005, 21:02
ik dacht dat het ook zoiets was, maar werkt niet.

ben echt radeloos aant worden.
iemand die ziet wat er fout gaat en hoe het op te lossen??

alm.

The_One
%Europe/Berlin %836 %2005, 21:04
wat lukt niet? krijg je een error? zou je anders je FLA + XML kunnen uploaden?

psychogene
%Europe/Berlin %855 %2005, 21:31
ik kan de movieclips gewoon niet aanklikken.

hier zijn de files:

Roenes
%Europe/Berlin %865 %2005, 21:45
logisch, je onRelease vervalt zodra je loadMovie voltooid is. Je moet dus eerst wachten tot loadMovie klaar is, en dan pas je onRelease toekennen aan die mc. :)

psychogene
%Europe/Berlin %721 %2005, 18:19
ja, je hebt gelijk.
Maar hoe kan ik dan Holder1, holder2, ... aanspreken.


this["holder"+i].onRelease = function(){
trace(this._name);

zo lukt het niet.

grts

theFlashWizard
%Europe/Berlin %797 %2005, 20:08
dmv van de MovieClipLoader:
http://www.kirupa.com/developer/actionscript/moviecliploader2.htm
http://www.actionscripts.org/tutorials/intermediate/MovieClipLoader_in_Flash_MX_2004/index.shtml
http://www.actionscripts.org/tutorials/intermediate/MovieClipLoader_in_Flash_MX_2004_Part2/index.shtml

weer een onLoad maken voor wanneer je plaatjes geladen is en er dan een onRelease aan toekennen..

psychogene
%Europe/Berlin %027 %2005, 01:39
THX

Het is gelukt met het MovieClipLoader object.

theFlashWizard
%Europe/Berlin %116 %2005, 03:47
graag gedaan :)