Volledige versie bekijken : Korter schrijven (for loop?)
Aeronobe
%Europe/Berlin %664 %2008, 16:56
Ik vraag mij af of ik volgend stukje korter zou kunnen schrijven,
ik dacht dit te doen met een for loop, maar dat lukt niet denk (of ik zou toch niet weten hoe :P )
Dit is het stuk
function klik()
{
canvas._alpha = 100;
details._alpha = 100;
for (var i:Number = 1; i < 4; i++)
{
var t:MovieClip = this._parent["butt"+i];
if (t != this)
{
t._visible = false;
}
else
{
var s:Object = this;
s.onRelease = unReleased;
details.onRelease = closeup;
//vanaf dit stuk zou ik korter willen schrijven
if (t == _level0.butt1)
{
holder.loadMovie("foto1.jpg",holder);
}
if (t == _level0.butt2)
{
holder.loadMovie("foto2.jpg",holder);
}
if (t == _level0.butt3)
{
holder.loadMovie("foto3.jpg",holder);
}
//tot hier
}
}
}
Ik kan voor de if statement wel gebruik maken van de " i ",
maar ik kan voor mijn url toch geen " i " gebruiken ?
martie molenaar
%Europe/Berlin %666 %2008, 16:59
Je kan die i waarde gebruiken voor een array.
Dan lees je de gegevens uit een array.
Klik ik op button 1 laat dan plaatje 1 in. etc.
Gaat het erom als je op een button klikt?
Volgens mij mis je nog code hier.
Je geeft trouwens ook 2 keer holder op, een keer is genoeg hoor;)
martie molenaar
%Europe/Berlin %669 %2008, 17:03
var fotoArray:Array = ["foto1.jpg","foto2.jpg","foto3.jpg"]
for (var i:Number = o; i<4; i++)
{
var button:MovieClip = this["button"+i];
button.id = i;
button.onPress = function()
{
holder.loadMovie(fotoArray[this.id])
}
}
Aeronobe
%Europe/Berlin %679 %2008, 17:19
Je geeft trouwens ook 2 keer holder op, een keer is genoeg hoor;)
Jaah had ik even over het hoofd gezien :)
En het gaat om een carousel, dus idd allemaal buttons,
met zo'n array kan ik het inderdaad korter schrijven, bedankt !
Aeronobe
%Europe/Berlin %772 %2008, 19:31
Ik heb het dus nu even aangepast aan mijn echte carousel (andere is voor alles te testen)
en zo ziet het er nu uit:
var fotoArray:Array = ["foto1.jpg","foto2.jpg","foto3.jpg"]
var picture = ["_level0.item" + i];
trace (picture); //geeft: _level0.item0
if (t == picture)
// was eerst: if (t == _level0.item0);
{
holder.loadMovie(fotoArray[i]);
}
Ik weet dus niet hoe ik mijn if statement herschrijf met de " i " erin ...
(voor de rest werkt alles prima )
martie molenaar
%Europe/Berlin %352 %2008, 09:27
Waarvoor heb je dan if statements als ik vragen mag. Wat moet er precies gebeuren?
Aeronobe
%Europe/Berlin %538 %2008, 13:55
ok, even kort schetsen hoe het in elkaar zit :)
(edit onderaan)
xml.onLoad = function()
{
//laad verschillende prentjes uit XML en zorg ervoor dat ze in een carousel staan
//elk prentje krijgt ook een onRelease genaamd "released"
}
function released() //als er dus op een prentje wordt geklikt
{
//fade alles weg naar zwart
//breng het geklikte prentje naar voren + kleine uitleg (over prentje)
//en laad het correcte prentje in de holder : (t staat voor het geklikte prentje)
if (t == _level0.item0)
{
// laad prentje 1 in holder
}
if (t == _level0.item1)
{
//laad prentje 2 in holder
}
//enzovoort voor elk prentje uit de carousel
}
xml.load("icons.xml");
Dat is een hele ruwe schets van de .fla met overbodige functies en tweens enzovoort eruit...
EDIT:
Heb het gevonden met wat gepruts:
var fotoArray:Array = ["foto1.jpg","foto2.jpg","foto3.jpg"];
var pictureArray:Array = [_level0.item0, _level0.item1];
if (t == pictureArray[i])
{
holder.loadMovie(fotoArray[i]);
}
Dus nu dat laatste stukje in een for loopje zetten en het werkt. :)
Bedankt voor je hulp martie !
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.