PDA

Volledige versie bekijken : keuze op basis van bestands extensie ?


verberne
%Europe/Berlin %842 %2005, 21:12
Ik ben op het moment bezig me met een portfoliosite voor mijn projecten.
het materiaal dat ik wil gebruiken bestaat in hoofdzaak uit foto's en lijntekeningen.

Voor de lijntekeningen gebruik ik *.swf bestanden die ik met loadMovie in een movieclip inlaad die inzoomen, uitzoomen etc bewerkstelligd. De foto's *.jpg bestanden worden gewoon op een vast formaat weergegeven.
Ik gebruik hiervoor nu een xml bestandje dat de bestandsnamen en het wel of niet zoomen defineerd. Dit werkt goed maar is erg omslachtig naar mijn mening.

Waar ik naar op zoek ben is een routine waarmee de ingelade afbeelding wordt gecontroleerd op zijn bestandsextensie, en vervolgens op basis hiervan al dan niet in de "zoom"-movieclip wordt geplaatst.

Alle hulp is welkom.
Alvast bedankt
ohja, ik werk in Flash MX

TheDutch
%Europe/Berlin %858 %2005, 21:35
Ken je de functie substr() of spit()? Daarmee kan je van een hele bestandsnaam de extensie opvragen. Op prefereer split() waarmee ik op "." split en dan het laatste element van de array gebruik :).

verberne
%Europe/Berlin %922 %2005, 23:07
ga er meteen mee aan de slag, klinkt zeer bruikbaar, en zal wel even melden of het lukt

verberne
%Europe/Berlin %543 %2005, 14:02
Is gelukt:

bestandsextensie = imagename.substr(-3, 3)

denk zet het er even bij, voor als iemand anders dit ook wil gebruiken.
bedankt TheDutch

BDisOKE
%Europe/Berlin %544 %2005, 14:04
Kan je wat meer script laten zien/ plaatsen?
Ben wel benieuwd nl.

verberne
%Europe/Berlin %850 %2005, 21:24
Dit is een onderdeeltje van de code,
voorafgaand laad ik de bestanden in, uit de xml-file,
en stuur ze door een preloadroutine, die tevens voor
elke afbeelding een button toevoegd.
Deze functie wordt aangesproken zodra de button wordt ingedrukt.

Hoop dat het wat duidelijkheid geeft over wat ik aan het doen ben

// De XML data
<Afbeeldingen>
<afb pic="001.jpg"></afb>
<afb pic="situatie.swf"></afb>
<afb pic="010.jpg"></afb>
<afb pic="plattegronden.swf"></afb>
<afb pic="004.jpg"></afb>
<afb pic="005.jpg"></afb>
<afb pic="006.jpg"></afb>
<afb pic="007.jpg"></afb>
<afb pic="008.jpg"></afb>
<afb pic="009.jpg"></afb>
</Afbeeldingen>

// Functie die de afbeeldingen weergeeft op basis van extensie
function laadImg2(curImg2) {
// haal uit de xmlfile de afbeelding
img2 = project_xml.firstChild.childNodes[curImg2].attributes.pic;
// haal de extensie uit de afbeelding in de xmlfileen bepaal of er wel of niet een zoomroutine moet worden geopend
extensie = project_xml.firstChild.childNodes[curImg2].attributes.pic.split(".");
extensie = extensie[extensie.length-1];
if (extensie == "swf") {
zoomimage = dir+"/"+img2;
mc_zoom.map._x = 270;
mc_zoom.map._y = 130;
mc_zoom.map._xscale = 100;
mc_zoom.map._yscale = 100;
mc_zoom.scale = "100%";
loadMovie (zoomimage, mc_zoom.map.frame);
mc_zoom._visible = true;
}
else if (extensie == "jpg"){
mc_zoom._visible = false;
loadMovie(dir+"/"+img2, "imageframe");
}
}

TheDutch
%Europe/Berlin %889 %2005, 22:20
Ik zou dit doen omdat een bestandsextensie niet altijd 3 letters is:

bestandsextensie = imagename.split(".");
bestandsextensie = bestandsextensie[bestandsextensie.length-1];

verberne
%Europe/Berlin %936 %2005, 23:28
Is inderdaad wat universeler, heb het even in bovenstaande code gewijzigd.