Toon posts:

[flash] Array uit .txt var

Pagina: 1
Acties:
  • 109 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil in de Flash-movie een Array maken, die ingelezen wordt uit tekstbestand playlist.txt

de variabele in het .txt-bestand:
playlist="o121","a2","o532","o549","o545"

de code in flash
code:
1
2
3
4
5
loadVariablesNum("playlist.txt", 3);
plArray = new Array(_level3.playlist);
for (i = 0; i < plArray.length; i++) {
    trace(plArray[0]);
}


De Output (regel 1=trace, regel 2=error):

"o121","a2","o532","o549","o545"
Error opening URL "http://marcomedia/egpn/admin/admin_index/digisheets//o121","a2","o532","o549","o545".txt"



Het is dus volgens mij een variabele met een identiteitscrisis. misschien moet iemand de komma's vertellen dat ze zich als echte (array)komma's moeten gedragen.

Wat ik ook (vergeefs) geprobeerd heb:


- plArray = new Array(eval(_level3.playlist));
- (in txt) playlist=o121,a2,o532,o549,o545


De vraag: is er iemand die bij zich zelf denkt: "Ach, daar heb je er weer zo eentje die van array's geen kaas gegeten heeft"? Kan ik uberhaupt op deze manier een array inladen, of moet ik het in het txt-bestand helemaal anders aanpakken? Ik sta overal voor open.

Verwijderd

Stop ten eerste met eval ... brrrr, eng :) Het is logisch dat je geen komma's kan gebruiken, omdat de variabele als een string word ingeladen. Wat je kan doen is een XML bestand maken, deze inlezen in flash en ze in een array plempen (dit omdat ik het niet zo heb met txt bestanden).

XML:
<playlist>
<song id="0" name="blaat" />
<song id="1" name="blaap" />
</playlist>

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
playlist = new Array ();

myXML = new XML ();
myXML.ignoreWhite = true;
myXML.parent = this;
myXML.onLoad = function () {
  var myLength = this.firstChild.childNodes.length;
  for ( var i = 0; i < myLength ; i++ ) {
    var myName = this.firstChild.childNodes[ i ].attributes.name
    this.parent.playlist.push = myName;
  }
}
myXML.load ( "xmlFile.xml" );

[ Voor 19% gewijzigd door Verwijderd op 24-10-2003 13:14 ]


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

had B-top daar niet ooit eens een heel erg aardig stukje code voor geschreven?

in elk geval kan het niet zonder zelf een stukje script te maken dat een koppelteken onderscheidt oid.

Stoer; Marduq


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

- hernoem je textfile
- verander de waarde van de variable playlist in:
Flash ActionScript:
1
playlist="o121,a2,o532,o549,o545"

- split op komma teken
- returned een array
- loopen maar

:)

[ Voor 85% gewijzigd door oh,when? op 24-10-2003 12:17 ]

"You're only as good, as what you did last week."


Verwijderd

Verwijderd schreef op 24 October 2003 @ 11:13:
Stop ten eerste met eval ... brrrr, eng :) Het is logisch dat je geen komma's kan gebruiken, omdat de variabele als een string word ingeladen. Wat je kan doen is een XML bestand maken, deze inlezen in flash en ze in een array plempen (dit omdat ik het niet zo heb met txt bestanden).

XML:
<playlist>
<song id="0" name="blaat" />
<song id="1" name="blaap" />
</playlist>

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
playlist = new Array ();

myXML = new XML ();
myXML.ignoreWhite = true;
myXML.parent = this;
myXML.onLoad = function () {
  var myLength = this.firstChild.childNodes.length;
  for ( var i = 0; i < myLength ; i++ ) {
    var myName = this.firstChild.childNodes[ i ].childNodes;
    this.parent.playlist.push = myName;
  }
}
myXML.load ( "xmlFile.xml" );
Dit kost veel proc tijd, zeker bij de grotere bestanden ....


ff uit het koppie :
code:
1
2
3
4
myXml = new XML();
myXml.parseXML = function(raw){
     trace(raw);
}


Hierbij vervang je dus de o zo zware parseXML functie, en kan je ook andere dingen gaan parsen.

Verwijderd

Topicstarter
Bedankt! Het werkt als een tierelier! :)
Pagina: 1