PDA

Volledige versie bekijken : xml foto inladee


tzr250
%Europe/Berlin %706 %2005, 17:57
Hey lui, lang niet meer om hulp gevraagt..
heb hier alle xml relaterende topics doorgelezen maar kom er niet echt uit.. heb de tutorial op gotoandlearn.com ook doorgenomen... ik was bezig met het extern inladen van fotos via een xml bestandje...

namelijk:
XML::

<?xml version="1.0" encoding="utf-8"?>
<slideshow>
<photo url="11.jpg" caption="dit is een vette bak />
<photo url="22.jpg" caption="adsffasdafsdfads />
</slideshow>

FLASH ACTIONSCRIPT:


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

var urls:Array = new Array();
var caption:Array = new Array();
var whoIsOn:Number;

x.onLoad = function() {
var photos:Array = this.firstChild.childNodes;
for(i=0;i<photos.length;i++) {
urls.push(photos[i].attributes.url);
captions.push(photos[i].attributes.caption);
}
holder.loadMovie(urls[0]);
caption.text = captions[0];
whoIsOn = 0;
}

x.load("test.xml")


elke keer als ik mn xml bestand wil inladen (die ook test.xml heet) krijg ik dit:

' Error opening URL "file:///E|/website%20maken%20roc/test.xml" '
snap er geen hout van.. en die fotos die ik extern inlaadt, dit zijn urls van mijn computer (fotos staan in dezelfde map) maar mogen dit ook urls op het internet zijn .. dus

[code]<photo url="www.lalala.com/lekkerding.jpg" caption="lekkerding />
? Dat zou me namelijk wat ruimte besparen in mn .fla file
hartelijk dank in iedergeval

tzr250
%Europe/Berlin %718 %2005, 18:14
oke op dat ene heb ik een antwoord, of je ook urls van sites kon gebruiken want ik heb nu een bestand van kirupa.com gehaald waar het xml bestand al af is.. en daar stonden ook urls, maar ik kan die error nog steeds niet verklaren, misschien nutteloos om hier eecht een appart topic over te starten maar ik zit al een dik uur vast..


*edit waarom lukt het zo wel:


function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
// ///////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
prevImage();
} else if (Key.getCode() == Key.RIGHT) {
nextImage();
}
};
Key.addListener(listen);
previous_btn.onRelease = function() {
prevImage();
};
next_btn.onRelease = function() {
nextImage();
};
// ///////////////////////////////////
p = 0;
this.onEnterFrame = function() {
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (picture._alpha<100) {
picture._alpha += 10;
}
}
};
function nextImage() {
if (p<(total-1)) {
p++;
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[p], 1);
desc_txt.text = description[p];
picture_num();
}
}
}
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
picture.loadMovie(image[p], 1);
desc_txt.text = description[p];
picture_num();
}
}
function firstImage() {
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[0], 1);
desc_txt.text = description[0];
picture_num();
}
}
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}

tzr250
%Europe/Berlin %905 %2005, 22:43
oke niet om het topic te uppen want ik gebruik het script van de ander al.. ik kan nergens vinden hoe ik een plaatje van 1200xmaaktnietuit
laten we zeggen 1600x1200 inlaad als zgmaar 800x600 en dat je wel het hele plaatje ziet, maar dat die hem verkleint ziet.. en dat al sje erop klikt d eware grootte krijgt?

mateo)
%Europe/Berlin %931 %2005, 23:21
die laatste post kan wat duidelijker. ik reageer nog even op je eerste post. je code is op zich OK, alleen een paar typo's:
je xml:
<photo url="11.jpg" caption="dit is een vette bak />
aanhalingstekens worden niet afgesloten

je AS:
var caption:Array = new Array();
en even verder
captions.push(photos[i].attributes.caption);

Dauntless
%Europe/Berlin %288 %2005, 07:55
En ook over die caption(s):
Dan zet je daarna:
caption.text = captions[0];
Dat kan dan ook weer niet... caption is een array, en captions bestaat niet...
Waarschijnlijk heb je een textfield dat caption heet en wou je de array captions noemen?

tzr250
%Europe/Berlin %412 %2005, 10:54
Ja daunt, je hebt gelijk... dit werkt nu, raar ik dacht dat de soort debugger de onafgesloten dingen wel moest constateren...

maarja die heeft dat xml ding weer niet :D

Over mijn laatste vraag.. het is vrij simpel maar inderdaad wazig uitgelegd, wat ik wil is een pagina met allemaal fotos, miniatuurweergaves van ongeveer 100x100 maar niet dat ik ze zelf met adobe 100x100 maak dus de foto van 1000x1000 moet met een code 100x100 worden ..

met html kan ik ht wel

<img src="http://voorbeeld.nl/plaatje.jpg" width="100" height="100">


Maar voor flash kan ik het niet vinden.. en dan komt er nog wat bij, als ik erop klik moet die uiteraart weergeven worden in de werkelijke grootte, iemand die me hier verder mee kan helpen of moet ik de vraag herhalen in een nieuw topic?

Dauntless
%Europe/Berlin %641 %2005, 16:24
Over het algemeen lijkt het mij wel het beste om zelf thumbnails te maken. Anders moet je ook voor de thumb's de volledige, grote foto inladen.
Maar wat jij wil kan je doen met _xscale en _yscale . Scale hem gewoon tot hij de juiste afmeting heeft...
Ik werk er zelf niet vaak mee maar 'k denk dat het werkt zoals dit:
_xscale = eigenlijkeXGrootte / toekomstigeXGrootte
_yscale = eigenlijkeYGrootte / toekomstigeYGrootte

Want _yscale = 100; betekent waare grootte.

tzr250
%Europe/Berlin %692 %2005, 17:37
Oke, je hebt wel gelijk wat betreft dat zelf de miniaturen maken, die zijn toch enkele kb's.. dus da kan ook nog wel in de fla. file of gewoon wat ik nu dus ook uiteindelijk kan via xml bestandjes...

en dat resizen werkt ook perfect dankjewel!

Dauntless
%Europe/Berlin %705 %2005, 17:55
Ok, goed dat het gelukt is :). (Zat ik trouwens juist met m'n redenering? Dan weet ik dat voor mezelf ;))