Volledige versie bekijken : Array ontvangen uit PHP
akiffen
%Europe/Berlin %538 %2006, 13:55
Hallo...
Hoe kan ik een array ontvangen uit flash en gebruiken in actionscript?
Is het het ook mogelijk om via de HTML object extra parameters mee te geven?
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="lijndiagram" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="lijndiagram.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
ZIE HIER/////
<param name="arrayNaam[0]" value="waarde1" />
<param name="arrayNaam[1]" value="waarde2" />
<embed src="lijndiagram.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="lijndiagram" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
brossiekoppie
%Europe/Berlin %543 %2006, 14:02
Je kan via AMFphp een array returnen in php en hem direkt ook als array in flash gebruiken
amfphp.org
tvdveen
%Europe/Berlin %543 %2006, 14:02
dat kan door in php kommagescheiden waarden toe te kennen en weer te geven zodat dit op het scherm geparst wordt:
?arraywaardes = waarde1, waarde2, waarde 3 etc.
in flash kun je dat zo ophalen:
myLoadVars = new LoadVars();
myLoadVars.load("phpbestand.php");
myLoadVars.onLoad = function(){
phpArr = new Array()
_root.phpArr = myLoadVars.arraywaardes.split(",");
}
hoop dat je er iets aan hebt. :)
Dauntless
%Europe/Berlin %544 %2006, 14:03
Als je geen AMFPHP wilt gebruiken, kan je eventueel de serialiser class van sephiroth.it gebruiken:
http://www.sephiroth.it/test/unserializer/index.php
En variabelen meegeven via html gaat ook. Zoek daarvoor naar 'flashvars' .
XemonerdX
%Europe/Berlin %547 %2006, 14:08
En weer een andere optie is JSON (http://json.org/)
akiffen
%Europe/Berlin %583 %2006, 15:00
dat kan door in php kommagescheiden waarden toe te kennen en weer te geven zodat dit op het scherm geparst wordt:
?arraywaardes = waarde1, waarde2, waarde 3 etc.
in flash kun je dat zo ophalen:
myLoadVars = new LoadVars();
myLoadVars.load("phpbestand.php");
myLoadVars.onLoad = function(){
phpArr = new Array()
_root.phpArr = myLoadVars.arraywaardes.split(",");
}
hoop dat je er iets aan hebt. :)
Deze optie is idd een goede, maar nu haal ik alle variabellen uit het phpbestand.php. En ik wil alle waarden meegeven in het object parameter.
Want ik maak namelijk per waarde uit de array een movieclip aan. Met een apart phpbestand kan ik de swf maar 1x oproepen en dezelfde waardes houden. Wanneer ik de waarden van de array als parameter in het object meegeef kan ik de flash file vaker oproepen en verschillende movieclips tonen.
Hoe zorg ik ervoor dat ik alle arraywaarden uit een extra param kan lezen?
tvdveen
%Europe/Berlin %592 %2006, 15:13
Ik begrijp nog niet helemaal wat je bedoeld maar je kunt door de ontvangen array lopen om bijvoorbeeld per waarde een actie uit te voeren, in dit geval het maken van een lijstje met knoppen:
i=0;
while(i < _root.phpArr.length){
this.attachMovie("linkagenaamknoppie","numknop"+i,i+1)
this["numknop"+i]._x = 0
this["numknop"+i]._y = i * 12;
this["numknop"+i].waardenaam = _root.nummerArr[i]
}
heb je hier wat aan? zo nee zou je dan wat duidelijker willen omschrijven wat je precies wilt? :P
akiffen
%Europe/Berlin %600 %2006, 15:24
haha...het is ook mijn bedoeling om door de array heen te loopen, maar dan meer dynamisch. Alle arraywaarden via een apart php bestand inladen werkt nog te statisch.
Op deze manier kan ik maar 1x een php maken en hierbij de SWF gebruiken.
Wanneer ik de array al in het object (html) kan meegeven kan ik vaker verschillende keren dezelfde SWF oproepen, maar met verschillende waarden.
<param name="movie" value="array.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="arrayNaam[0]" value="50">
<param name="arrayNaam[1]" value="20">
en dan nog eens dezelfde SWF opvragen in HTML met verschillende waardes voor de array
<param name="movie" value="array.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="arrayNaam[0]" value="80">
<param name="arrayNaam[1]" value="100">
<param name="arrayNaam[2]" value="60">
<param name="arrayNaam[3]" value="120">
In de SWF staat dan een stukje script die de array "arrayNaam" uitleest en via een loop alle keys telt en hiervoor een movieclip aanmaakt. Het loopen van een array uit actionscript lukt wel en ik krijg dan ook alle movieclips per arraywaarde, maar het lukt nog niet via de extra parameters....
Dauntless
%Europe/Berlin %606 %2006, 15:33
Dit als AS:
var pars:String = this.arr1;
var temp:Array = pars.split(":");
var arNaam = temp[0];
this[arNaam] = temp[1].split("-");
for (var i in this[arNaam]) {
this[arNaam][i] = Number(this[arNaam][i]);
}
trace(this[arNaam].length);
trace(this[arNaam][0]);
Je html is dan dit:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="910" height="480" id="index_02" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="index_02.swf?arr1=array1:50-80-160-9811" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="index_02.swf?arr1=array1:50-80-160-9811" quality="high" bgcolor="#ffffff" width="910" height="480" name="index_02" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Op die manier kan je een array toch gewoon in je object code zetten en blijft je .swf dynamisch ...
Maar dit wil je niet ?
tvdveen
%Europe/Berlin %609 %2006, 15:37
aha dat kun je doen door achter de swf dynamisch met php variabelen mee te geven:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="lijndiagram" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="lijndiagram.swf?variabele1=1&variabele2=2" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="lijndiagram.swf?variabele1=1&variabele2=2" quality="high" bgcolor="#ffffff" width="550" height="400" name="lijndiagram" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
dit kan je dan in flash weer opvragen als een variabele in de root:
_root.variabele1 //is dus 1.
_root.variabele2 //is dus 2.
denk dat je het idee wel begrijpt ;)
akiffen
%Europe/Berlin %653 %2006, 16:41
Thankx! Dit bedoel ik idd....
ga er vanavond ff uitgebreidt naar kijken.... Moet lukken zo dacht ik :D
en zo niet....dan horen jullie het wel :p haha
akiffen
%Europe/Berlin %421 %2006, 11:07
dat kan door in php kommagescheiden waarden toe te kennen en weer te geven zodat dit op het scherm geparst wordt:
?arraywaardes = waarde1, waarde2, waarde 3 etc.
in flash kun je dat zo ophalen:
myLoadVars = new LoadVars();
myLoadVars.load("phpbestand.php");
myLoadVars.onLoad = function(){
phpArr = new Array()
_root.phpArr = myLoadVars.arraywaardes.split(",");
}
hoop dat je er iets aan hebt. :)
Ik krijg geen output als ik dit doe.... Hoe kan dit?
Wat zet ik precies neer in de php file dan?
tvdveen
%Europe/Berlin %442 %2006, 11:36
Je moet zorgen dat het volgende wordt weergegeven in de pagina:
arraywaardes = waarde1, waarde2, waarde 3
(Het vraagteken ervoor kun je vergeten dat is fout)
in flash haal je het dan zo op(deze code op een frame zetten) met commentaar deze keer:
myLoadVars = new LoadVars();
//php bestand waar de array vandaan komt
myLoadVars.load("phpbestand.php");
myLoadVars.onLoad = function(){
//wanneer de data geladen is gebeurd dit:
//Array aanmaken
_root.phpArr = new Array()
//Array vullen
_root.phpArr = myLoadVars.arraywaardes.split(",");
//Nu staan de gegevens in de array phpArr in de root. je kunt de data dus benaderen door _root.phpArr[nr] aan te spreken.
//voorbeeld: trace(_root.phpArr[0])
}
Hoop dat je er zo meer mee kan, waarschijnlijk had je dat vraagteken ervoor, my bad! [V]
akiffen
%Europe/Berlin %455 %2006, 11:55
Ik krijg steeds een undefined terug als ik die trace doe :S....
tvdveen
%Europe/Berlin %466 %2006, 12:11
De spaties uit php halen:
arraywaardes=waarde1,waarde2,waarde3
dan zou ie moeten werken :)
akiffen
%Europe/Berlin %472 %2006, 12:19
doh!! doh!! doh!!
EHeheh.... ik had een .php bestand...en die werd niet uitgevoerd omdat er php code instond...en aangezien ik dit bestand niet op een webserver uitvoerde lukte het niet...ehehe...i am so stupid!
thankx anyway :D
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.