.jpg inladen via .txt-bestand in Flash

Hoi ik heb een probleem met flash en hoop dat jullie me kunnen helpen.

ik moet een swf creeren waarin 3 foto’s getoond gaan worden, en deze foto’s moeten een animatie ondergaan. echter omdat de uiteindelijke gebruiker geen gebruik maakt van flash, en hij wel de foto’s moet kunnen aanpassen, moeten deze foto;s via een .txt bestand uitgelezen worden.

echt ik ben te dom voor woorden…

mijn eerste fout komt al bij dit stukkie

[code:1:f2043658a1]loadVariablesNum("fotos.txt", 0);[/code:1:f2043658a1]

hij staat in de goede map, maar krijg deze foutmelding:
Error opening URL “file:///C|/Documents%20and%20Settings/Compaq%5FEigenaar/Mijn%20documenten/exclusieve%20hoeden/fotos.txt”

dan ga ik verder…
wat de bedoeling is, is dat er 1 swf komt, waarin achterelkaar meerdere foto’s (waarmee een kleine animatie gemaakt word) worden getoond. Deze foto’s moeten uit het fotos.txt bestand gehaald worden. (dus welke foto het is.)

in dit .txt bestand staat op dit moment:

[code:1:f2043658a1]&foto1=<img src="1.jpg">
&foto2=<img src="2.jpg">
&foto3=<img src="3.jpg">[/code:1:f2043658a1]

de foto’s staan in dezelfde map als het txt bestand en de swf.

als ik dan dus in mijn frame dit zet:

[code:1:f2043658a1]i=1;
loadMovie("foto"+i+".jpg",container);[/code:1:f2043658a1]
krijg ik niets te zien…
hier zou dan toch de eerste foto te zien moeten zijn.
en als dit zo zou zijn, hoe krijg ik dan foto2 en 3 naar voren getoond.

ik weet het, het zal wel heel gemakkelijk zijn, maar ik zie het helemaal niet

op dit moment heb ik in mijn frame dit staan

[code:1:f2043658a1]
loadVariablesNum("fotos.txt", 0);

for(i=1;i<6;i++){
loadMovie(loadMovie("foto"+i+".jpg",container+"i"));
}

[/code:1:f2043658a1]

en dit is mijn foutmelding

[quote:f2043658a1]
Error Scene=Scene 1, layer=actions, frame=1:Line 4: Wrong number of parameters; loadMovie requires between 2 and 3.
loadMovie(loadMovie(“foto”+i+".jpg",container+“i”));

Total ActionScript Errors: 1 Reported Errors: 1
[/quote:f2043658a1]

Je kan dit alleen met Flash MX 2004 Professional doen...

ik ben dus in flash aan het proggelen met AS maar ik blijf foutmeldingen krijgen...

Als je toch met een for loop gaat werken en alle fotobestannden hetzelfde gaan noemen, waarom werk je dan nog met een externe txt file waarin de foto namen staan ?

Dus, maak een lege movieclip aan en noem deze foto1, foto2, foto3.
En op de frame zet je dan:

for(i=1;i<6;i++){
_root[“foto”+i].loadMovie(“foto”+i+".jpg");
}

als het op een andere manier gaat als met een for loop graag :D

ik kan geen lege movieclip aanmaken aangezien de foto;s extern staan, en soms veranderd dienen te worden, dit kan dus nu in dat txtbestand (nu in de test fase is het foto1,2 etc maar straks worden het de originele namen)

hmm, ik ben niet zo zot van die txt-files wegens teveel problemen met het dynamic aanmaken van dergelijke files.

Voor zoiets kan je gerust xml gebruiken.

[code:1:50708f75bb]
<?xml version="1.0" encoding="iso-8859-1"?>
<album>
<picture>foteoe.jpg</picture>
<picture>foteee.jpg</picture>
<picture>fotaetfe.jpg</picture>
<picture>fftzee.jpg</picture>
<picture>ferererere.jpg</picture>
</album>
[/code:1:50708f75bb]`

en dan in je as:

[code:1:50708f75bb]
myAlbum = function(file){
// General container for all photos
con =_root.createEmptyMovieClip("albumContainer",800);
// Keep it invisible
con._alpha = 0;

// XML shit
album_xml = new XML&#40;&#41;;
album_xml.ignoreWhite = true;

// if xml is loading
album_xml.onLoad = function&#40;success&#41;&#123;
	//xml loaded successfully?
	if&#40;success&#41;&#123;
		//setting the root of the xmlfile
                        root = this.firstChild;
		
                        // loops through all the childnodes
		for&#40;i=0; i&lt;root.childNodes.length;i++&#41;&#123;
                                 //creates a new holder for every pic
			con.createEmptyMovieClip&#40;&quot;pic&quot;+i, 800+i&#41;;
                                 // load picture
			con&#91;&quot;pic&quot;+i&#93;.loadMovie&#40;root.childNodes&#91;i&#93;.firstChild&#41;;
                                 // position&#58; horizontal lined up
			con&#91;&quot;pic&quot;+i&#93;._x = 0;
			if&#40;i&gt;0&#41;&#123;
				con&#91;&quot;pic&quot;+i&#93;._y = &#40;con&#91;&quot;pic&quot;+&#40;i-1&#41;&#93;._y&#41; + &#40;con&#91;&quot;pic&quot;+&#40;i-1&#41;&#93;._width&#41;;
			&#125; else &#123;
				con&#91;&quot;pic&quot;+i&#93;._y = 0;
			&#125;
		&#125;
                        // show container
		con._alpha = 100;
	&#125;
	else
	&#123;
		trace&#40;&quot;Failed to load xml&quot;&#41;;
	&#125;
&#125;
album_xml.load&#40;file&#41;;

}

myAlbum("album.xml");
[/code:1:50708f75bb]

ok, dit werkt tot zover... ik zie nu alleen de laaste, en ik neem aan dat hij eerst 1, dan 2 en dan 3 laad. dan moet ik nu dus iets gaan verzinnen waarmee dat ik ervoor kan zorgen dat hij eerst foto1 laad, er een ani gebeurt, dan foto 2 etc.

klopt het dat als ik foto1 laad, dan hiermee een actie laat gebeuren, vervolgens in een nieuw frame foto2 laad etc

je kan een setInterval gebruiken, listeners, eventdispatchers ,...

Wat je kan doen is bvb een mc maken met een holder voor je foto, en met je animatie.

in die xml attach je telkens zo’n mc aan je stage, zet alpha op 0, stopt de foto erin, en dan kan je’m aanroepen wanneer je wil.

't is een beetje beknopt voor iets dat eigenljk nogal uitgebreid is, als ik deze week de kans zie, zet ik es iets online. als ik tijd heb, that is :?

[quote:66377abdc3="EL Mystica"]je kan een setInterval gebruiken, listeners, eventdispatchers ,...

Wat je kan doen is bvb een mc maken met een holder voor je foto, en met je animatie.

in die xml attach je telkens zo’n mc aan je stage, zet alpha op 0, stopt de foto erin, en dan kan je’m aanroepen wanneer je wil.

't is een beetje beknopt voor iets dat eigenljk nogal uitgebreid is, als ik deze week de kans zie, zet ik es iets online. als ik tijd heb, that is :?[/quote:66377abdc3]

ik ga eens stoeien :slight_smile: alvast bedankt voor het op weg helpen :smiley:

en als je tijd hebt, zou ik het fijn vinden als je iets online kunt gooien voor me… :innocent:

Als je alles wil laten infaden:

[code:1:e7012ab6ea]var nRowCounter:Number = 0;
function displayRow():Void {
if (nRowCounter<menuItem.length) {
// pad naar de MC met fade functie
nRowCounter++;
}
}

myAlbum = function (file) {
// General container for all photos
con = _root.createEmptyMovieClip("albumContainer", 800);
// Keep it invisible
con._alpha = 0;
// XML shit
album_xml = new XML();
album_xml.ignoreWhite = true;
// if xml is loading
album_xml.onLoad = function(success) {
// xml loaded successfully?
if (success) {
// setting the root of the xmlfile
root = this.firstChild;
// loops through all the childnodes
for (i=0; i<root.childNodes.length; i++) {
// creates a new holder for every pic
con.createEmptyMovieClip("pic"+i, 800+i);
// load picture
con["pic"+i].loadMovie(root.childNodes[i].firstChild);
// position: horizontal lined up
con["pic"+i]._x = 0;
if (i>0) {
con["pic"+i]._y = (con["pic"+(i-1)]._y)+(con["pic"+(i-1)]._width);
} else {
con["pic"+i]._y = 0;
}
}
// show container
con._alpha = 100;
} else {
trace("Failed to load xml");
}
IntervalID = setInterval(displayRow, 100);
};
album_xml.load(file);
};
myAlbum("album.xml");
[/code:1:e7012ab6ea]

[code:1:e7012ab6ea]/*
Fade function

*/
MovieClip.prototype.fadeIt = function(fadeTo, fadeFaktor) {
this._alpha = this._alpha+(fadeTo-this._alpha)/fadeFaktor;
if (Math.abs(this._alpha-fadeTo)<0.1) {
delete this.onEnterFrame;
}
};[/code:1:e7012ab6ea]

konijn: die tweede code, waar moet die komen te staan?

Ergens op een frame, het is een protoype, dan maakt het niet uit waar die staat.

zeg konijn hedduhgij nog wel tijd voor iets anders? die flash tips van jou zijn goed bruikbaar!

:stuck_out_tongue:

grrr ik word echt gek van mezelf....

als ik letterlijk de eerste code van konijn in mijn eerste frame gooi

en een paar frames verderop het tweede gedeelte van de code…
zie ik alleen de 3e foto die in mijn map staat.
hoe krijg ik het voor mekaar dat hij eerst foto 1 laad, deze fade naar foto2 en dan naar foto3?

sorry voor mijn onwetendheid :oops:
maar ik hoop dat jullie me verder kunnen helpen