PDA

Volledige versie bekijken : Fotoalbum probleem.. Meerdere foto's onder elkaar lukt niet


WernerL
%Europe/Berlin %653 %2006, 16:40
Hallo,

Ik ben bezig met een swf die alle foto's onder elkaar moet weergeven die in een map staan.
Dus ik heb phpscript die kijkt welke foto's er in de map staan en die print dit uit:

&img1=blaat.gif&img2=adf.gif& etc.
Ik weet vantevoren NIET hoeveel erinstaan.

Ik heb nu dit scriptje:

// init LoadVars Object
lv = new LoadVars();

// define onLoad Callback
lv.onLoad = onLoadCallBack;

// load variables
lv.load("testurls.txt");

// onLoad Callback
function onLoadCallBack(succes)
{
// if succes
if(succes)
{
//Load images in MC
loadMovie(this.img1,"fotos.thumbnail");
}
else
{
// loading failed
trace("Loading Error!!");
}
}


Dus ik heb op de mainstage een MC aangemaakt genaamd fotos (die heeft iets kleinere hoogte dan de stage zelf omdat er nog scrollbuttons boven moeten). En daarin heb ik een MC gezet genaamd thumbnail en daar word zoals je in bovenstaand stukje code ziet img1 in gezet.

Maar wat als er meerdere foto's zijn? Hoe krijg ik het voor elkaar dat die MC daaronder nog een keer gezet word? En als het er 3 zijn dat die MC er NOG een keer onder word gezet? etc.

Alvast bedankt want ik kom er niet uit.

Emveedee
%Europe/Berlin %655 %2006, 16:44
Ik zou proberen een array te maken met je images,
en die vervolgens met een for loop te doorlopen en in die mc te attachen.

WernerL
%Europe/Berlin %656 %2006, 16:45
ok. Kan ik dan alle ingeladen variabelen imploden oid? Of hoe zou ik er het best een array van kunnen maken?

Emveedee
%Europe/Berlin %658 %2006, 16:47
Geen idee.
Misschien is het handiger om je php een xml te laten genereren
en die in te laden? Daaruit kan je makkelijk t aantal foto's e.d. halen
en in een array pleuren.

(misschien hea, werk niet veel met loadvars.. of php)

WernerL
%Europe/Berlin %681 %2006, 17:21
Hmmz, ik ben niet zo thuis in xml. Mischien is het mogelijk om vanuit php direct een array door te sturen?

Ik had al dit gevonden: http://sephiroth.it/test/unserializer/index.php
Maar hoe is de array dan op te vragen met die AS die daar staat? :-) Dat staat er nml niet bijvermeld.

WernerL
%Europe/Berlin %835 %2006, 21:02
w00t het is gelukt! Met dank aan de fla van Emveedee in de AS monthly :D
Ik had nooit met xml gewerkt en heb even zijn code GOED gebestudeerd. Nu heb ik dus alle afbeeldingen onder elkaar staan die in xml file staan. Nu nog phpscriptje schrijven die die xmlfile genereerd.

Maar een vraagje, al die mc's (afbeeldingen dus) moetn klikbaar zijn. En omdat het (als ik code goed bekeken heb) een array zijn lijkt mij dat een vrij groot probleem. Omdat elke afbeelding ergens anders naartoe gaat.

Ik weet vantevoren niet hoeveel er in de xmlfile staan dus ik kan niet hardcoden door dit te doen:


mc[1].onrelease(){
..
}

etc.


:P Dus mss weet iemand een andere oplossing?
Het is iig enkel een getURL. Het moet verwijzen naar weetnognietwelkbestand.php?image=(hier url naar afbeelding die uit xmlkomt).

Mijn as ziet er als volgt uit nu:


_root.createEmptyMovieClip("scene" , 1); // waar de mcs geplaatst worden
var nexty:Number = 0;

var txtArray:Array = new Array();
var itemArray:Array = new Array();
var mcs:Array = new Array();
var c:Boolean = false;
function loadXML(){
var xmlload = "fotos.xml";
xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(succes){
if(succes){
trace("inladen gelukt :)");
for(var i:Number=0; i<this.firstChild.childNodes.length; i++)
{
itemArray.push(this.firstChild.childNodes[i].attributes.title);
txtArray.push(this.firstChild.childNodes[i].firstChild.firstChild.nodeValue);
}
attachMcs();
}
c = true;
}
xml.load(xmlload);
}

function attachMcs(){
for(var i = 0; i < txtArray.length; i ++){ // attachen van mcs in scene
mc = scene.attachMovie("mc1", "mc"+i, i);
mc._y = nexty;
nexty = nexty + 90;
mc._x = 10;
loadMovie(itemArray[i],mc);
trace(itemArray[i]);
mcs.push(mc);
}
}
loadXML();

WernerL
%Europe/Berlin %519 %2006, 13:28
ok laatste kickje want ik moet hier echt antwoord op hebben. Ik heb al geprobeerd een button te maken en deze te attachen op elke afbeelding.
Enkel werkt dat niet. Toen had ik een movieclip gemaakt met daarin een button en die geattaced op elke afbeelding. Ook dat werkte niet.

Iemand enig idee?

function attachMcs(){
for(var i = 0; i < txtArray.length; i ++){ // attachen van mcs in scene
mc = scene.attachMovie("mc1", "mc"+i, i);
button = scene.attachMovie("buttons", "button"+i, i);
button._y = nexty;
mc._y = nexty;
mcsy[i] = nexty;
nexty = nexty + 90;
button._x = 10;
mc._x = 10;
loadMovie(itemArray[i],mc);
trace(itemArray[i]);
mcs.push(mc);
buttons.push(button);
}
}


buttons is dus een movieclip (is de naam zoals hij in de library staat). En in die movieclip staat dus een button.
Maar er zijn geen buttons als ik export... En ook geen errors ofzo. :-)

renegeuze
%Europe/Berlin %536 %2006, 13:53
iets met x = eval ("button"+i)
x.onRelease = function (){
trace (this._name)
}?
Ik heb zoiets gister nog gemaakt maar ik heb geen idee hoe precies=p ik heb iig ergens wel eval gebruikt.

Emveedee
%Europe/Berlin %552 %2006, 14:16
Nou, dat gaat heel heel heel erg simpel :)



function attachMcs(){
for(var i = 0; i < txtArray.length; i ++){ // attachen van mcs in scene
mc = scene.attachMovie("mc1", "mc"+i, i);
button = scene.attachMovie("buttons", "button"+i, i);
button._y = nexty;
mc._y = nexty;
mcsy[i] = nexty;
nexty = nexty + 90;
button._x = 10;
mc._x = 10;
loadMovie(itemArray[i],mc);
trace(itemArray[i]);
mcs.push(mc);
buttons.push(button);

mc.onRelease = function(){
// doe je ding :D
}
}
}

WernerL
%Europe/Berlin %558 %2006, 14:24
Erhm.... meen je dat nou? :D OMG ik dacht dat dat niet kon. Eens proberen. lol. :P

//edit
De afbeeldingen zijn niet echt klikbaar.... :P

//edit2
zelfs als ik dit onder die functie zet kan ik op geen 1 afbeelding klikken...


mcs[1].onRelease = function(){
trace("test");
}

renegeuze
%Europe/Berlin %594 %2006, 15:16
Die edit twee moet je volgens mij met een eval functie oplossen. De manier die je gebruikt kreeg ik in flash 8/AS2 ook niet werkend(of het is toeval dat ik perongelijk een fout had gemaakt)

WernerL
%Europe/Berlin %601 %2006, 15:25
Maar wat ik bij edit2 neer had gezet, zo wil ik het eigenlijk ook helemaal niet. :-)
Ik weet vantevoren niet hoeveel afbeeldingen er in de xml file staan maar wel alle afbeeldingen moeten klikbaar zijn. snapie?

WernerL
%Europe/Berlin %618 %2006, 15:50
Argh als ik de regel
loadMovie(itemArray[i],mc);
weghaal werkt het wel... :/ wtf!
Maar het moet dus wel werken met loadMovie. :-)