vinTagesworld Flash forum

Stel zelf een vraag in het flash forum!


movieclips netjes uitspreiden over je scene via AS
blokje door Sikken op 02-03-07 om 18:41
hoi,

ik kwam deze site tegen:
http://sonspring.com/gallery/

Ik ben dus bezig iets in dezelfde aard te maken.
Ik werk via XML, maar nu weet ik niet hoe ik deze movieclips die ik aanmaak via XML netjes kan uitspreiden over de scene.

Ik zou daarboven hun positie moeten kunnen vastleggen, omdat ik ze eens zal overhoop gooien en dan nadien op hun orginele positie terugplaatsen.

Iemand enige tips?


XML aanroep:
actionscript code


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

xml.onLoad = function(){

  var nodes = this.firstChild.childNodes;
  aantalPlaatjes = nodes.length;
  for(var i=0;i<numOfItems;i++){

  var t=home.attachMovie("plaatje","plaatje"+i,i+1);
    ?????????????????????????? //positie instellen
                t.tekst = nodes[i].attributes.tekst;
    t.inhoud = nodes[i].attributes.inhoud;
  }
}

 


Ik ben dus op zoek naar iets mathematisch denk ik, maar ik weet niet wat waarschijnlijk met stagewidth en stageheight in combinatie met het aantal items die ingelezen worden.

Bijkomende vraag : als je movieclip aanmaakt met attachmovie, waar zit dat registrationpoint dan? In het midden of links boven ofzo?

Ik zit hier weer bezig boven mijn gewone "kunnen", dus als ik iets te overdreven vraag mag je dat gerust zeggen of me doorverwijzen naar een makkelijker niveau

Dikke merci

Sikken

 


Reply
blokje door vinTage op 02-03-07 om 19:54
actionscript code

var t=home.attachMovie("plaatje","plaatje"+i,i+1,{_x:50*i, _y:0} );
 

De laatste parameters (na de depth) staan tussen {}, hier kan je vanalles opgeven zoals _x, _y, _alpha....


Het registratiepunt zit em waar je het maakt in je "ge-attachede movie"

Zie ook attachMovie tutorial

edit
Wat betreft de lengte en hoogte van je rijen, je kan de breedte en hoogte idd opvragen dmv Stage.width en Stage.height, verder zul je een beetje moeten rekenen met de breedte van je plaatjes en i.
Dat kan ik niet voor je doen want ik weet de afmetingen niet van je plaatjes etc.

laatst ge-edit op: 02-03-07 om 19:58
Reply
blokje door W0utah op 02-03-07 om 20:41
of wat meer overzichtelijk:

actionscript code

t._x = 50;
t._y = 0;
 


 
Reply
blokje door vinTage op 02-03-07 om 20:57
Dat is niet overzichtelijk en het klopt niet ook
Het zou dan zo moeten zijn (in de for loop)
actionscript code

this["plaatje"+i]._x = iets;
 


 
Reply
blokje door Sikken op 02-03-07 om 21:39
ik heb nu al de plaatjes op de scene gezet, maar ik ben nog aant zoeken naar een goeie manier om een "grid" op te stellen.

Ik zal eerst een zoeken naar een paar deftige foto's voor in de gallerij :)

Merci voor de hulp

Dit is mijn proefversie:
link

opm: er is nog niks in orde é... geen swapdepths, niet gecentreerd, plaatjes niet allemaal gelijk,...

Ik zet da gewoon vlug online om een idee te geven van wat ik bedoel

Alle plaatjes zijn dus ingeladen via xml



 
Reply
blokje door vinTage op 02-03-07 om 22:20
Bedoel je nu dat het al goed is, of ben je er nog niet helemaal uit ?

Ik ga er maar even vanuit dat je nog niet uit het verticaal alignen, dus heb ik even een voorbeeldje gemaakt.

zo ziet dat eruit
fla

actionscript code

//zogenaamt komt dit dus uit de XML
nodes = Array("aap.png",
        "boom.png",
        "dier.png",
        "huis.png",
        "jan.png",
        "kees.png",
        "lol.png",
        "noot.png",
        "vis.png",
        "vuur.png");

//de afmetingen van je thumbs
imgSize = 50;

//startvars voor de hoogte van je rij
yHoogte = 0;
a = -1;

//uitlijnen op hoogte
for (var i = 0; i<nodes.length; i++) {
  a++;
  if (a*imgSize>=Stage.width) {
    yHoogte += imgSize;
    a = 0
  }
  this.attachMovie("plaatje", "plaatje"+i, i+1, {_x:(imgSize*a), _y:yHoogte});
  this["plaatje"+i].tekst.text = nodes[i]
}
 


 
Reply
blokje door Sikken op 03-03-07 om 19:52
merci

Ik heb nu een werkende gallery via XML.

linkje
(opm: foto's trekken op niks hoor :) )

Het loopt nog niet tip-top, maar ik kom al in de buurt.

kleine opm: ik zet voor de EaseOut tween ( _x en _y) de bestemming op Stage.width /2 en Stage.height/2 (na erop te klikken dus) , maar zoals je ziet komt het ingezoomde plaatje wat teveel naar rechts onder. Totaal niet in het midden dus...
Enig idee waarom?

FLA + xml en foto's
(orgineel is van Lee Brimilow's "carrousel", die ik heb aangepast naar een gallery)
edit: er zit een zwart balkje in de swf, niet op letten )

Enfin, ik zit dus nog met een aantal vragen, maar ik zal eerst eens google ambeteren voor ik hier begin te spammen

laatst ge-edit op: 04-03-07 om 13:11
Reply
blokje door vinTage op 04-03-07 om 13:38
Je moet het registratiepunt nog aftrekken van je width en height.
Dus zoiets:
eindpunt = (Stage.width/2)-(this.width/2)


 
Dit topic is gesloten.