PDA

Volledige versie bekijken : PHP array -> flash


Neuro
%Europe/Berlin %376 %2005, 09:01
ik zou enkele door php gegenereerde arrays moeten laaden met flash.
wat ik nu doe is: ik splits de arrays in apparte vars in PHP, ik schrijf ze in een txt file. loadvarnum met flash en maak er weer arrays van.
ik vind dit nogal complex, is hier geen betere methode voor?

alvast bedankt :)

Fl4sh3r
%Europe/Berlin %387 %2005, 09:18
Ik pas een vergelijkbare methode toe, maar die is iets minder complex schat ik.

In PHP mergen naar een bijvoorbeeld komma gescheiden var, deze inladen in Flash en weer splitten op de komma.

Als er in je array komma's voorkomen kun je ook bijvoorbeeld een pipe (|) gebruiken

Dauntless
%Europe/Berlin %391 %2005, 09:23
Xml gaat daar heel goed voor... En zowieso: Gebruik nooit loadVariablesNum! (En ook geen LoadVariables).

Maar altijd het LoadVars object.
Kijk bv naar deze 2d array map in xml:
http://www.dauntless.be/Projects/MarioWorld/Maps/test.xml

Wel, het zijn eigenlijk een stuk of 5 (grote) 2d arrays in 1 map, dus het laden duurt ff.

In AS kan je het dan met een XML object laden, door de nodes scrollen en alles in een 'echte' 2d array zetten...

Fl4sh3r
%Europe/Berlin %401 %2005, 09:38
Het nadeel van XML vind ik altijd de overhead, zowel in data als in code. Om een niet-multidimensionale array in laden gebruik ik dit:
PHP: echo 'array='.implode(',', $array);
AS: array = ldVrs.array.split(","); // met LoadVars, niet loadVariables(Num) zoals Dauntless al zegt

Heerlijk kort, geen overhead.

edit, voor de duidelijkheid een compleet voorbeeld:
<?
$array = array("mijn","mooie","array");
echo 'array='.implode(',', $array);
?>
var ldVrs:LoadVars = new LoadVars();
ldVrs.onLoad = function(success) {
if(success) {
trace(ldVrs.array.split(","));
}
}
ldVrs.load("http://www.host.nl/array.php");

Voetsjoeba
%Europe/Berlin %406 %2005, 09:44
Sephiroth van www.sephiroth.it (http://www.sephiroth.it/test/unserializer/index.php) heeft een mooie Serializer class, waarmee je ge-serializede data kunt inlezen. Je kan je array door PHP geserialized outputten zodat Flash hem met die class kan lezen. Spaart een beetje moeite :)


This Class enable you to pass and receive complex data type from and to PHP using the native PHP functions serialize and unserialize (this means that you can receive an array directly from PHP without making any kind of split to obtain your original array).

Folkert
%Europe/Berlin %409 %2005, 09:50
remoting gebruiken wil ook wel helpen ;) zie www.amfphp.org

Dauntless
%Europe/Berlin %410 %2005, 09:51
Flasher, dan heb je wel een probleem als er komma's in je array staan :p. (Of niet ? :#)

Fl4sh3r
%Europe/Berlin %438 %2005, 10:32
Flasher, dan heb je wel een probleem als er komma's in je array staan :p. (Of niet ? :#)

Dat klopt, maar als je verwacht dat er komma's in voor gaan komen gebruik je toch een |, zoals ik zal zei ;)
Als er in je array komma's voorkomen kun je ook bijvoorbeeld een pipe ( | ) gebruiken

Neuro
%Europe/Berlin %444 %2005, 10:39
bedankt allemaal, ik zal het eens nader bekijken :)