Flash-XML kommunikáció


Ez a téma lezárásra került a moderátor által. A lezárás oka: Végtelen örömmel töltene el bennünket, ha figyelembe vennéd, hogy a Tudástárban egy téma - egy kérdés/probléma elv érvényesül (nem "rondítunk" bele más - pláne már lezárt - témájába, tessék újat nyitni).  Sziasztok!
Adott a következő XML állomány:
<?xml version="1.0" encoding="utf-8"?>
<teszt>
<kerdesek>
<kerdes1 kerdesid="1"/>
</kerdesek>
<valaszok>
<valasz1 valaszid="1"/>
<valasz2 valaszid="2"/>
<valasz3 valaszid="3"/>
</valaszok>
</teszt>
A feladat a következő:
A flash-ből változtassam meg a
<kerdes1 kerdesid="1"/>
sorban az 1 értékét 2-re (vagy bármi másra).
Hogyan, milyen paranccsal tudom ezt megoldani?
Segítségeteket előre is köszönöm.
demo |
| Márminthogy magában az xml fájlban írd át az értékét? |
Ezt flash nem tudja csak pl. php, amivel lehetne így is.
<?php //megnyitja és kiolvassa az xml fájlod tartalmát $myFile = "testFile.xls"; $fh = fopen($myFile, 'w'); $theData = fread($fh, filesize($myFile));
//kicseréli ezzel benne amit kell $Cserelt = str_replace('kerdesid="1"/','kerdesid="2"/',$theData);
//megírja a fájlodba fwrite($myFile, $Cserelt); fclose($myFile); ?>
|
Szerintem te arra gondolsz, Flash-ben hogy lehetne módosítani az XML-ben található értéket, és nem pedig az XML file-ban. 
A Te esetedben ez így nézne ki:
function xmlLoad(src:String){ var xml=new XML(); xml.ignoreWhite=true; xml.load(src); xml.onLoad=function(succes){ if(succes){ var kerdesek:XMLNode=this.firstChild.firstChild.firstChild; var kerdesID:Number=kerdesek.attributes.kerdesid; kerdesID++; trace(kerdesID); // kerdesID értéke 1-ről 2-re változik }else trace("hiba"); }; };
xmlLoad("XML-ed neve.xml");
|
Szia! Akkor ezért keresgéltem hiába.
Ha jól értem, ezzel a php-val tényleg úgy tudom megváltoztatni az xml tartalmát, hogy azt egy másik alkalmazás is "látja", vagyis a megváltozott értéket fogja kiolvasni.
Ugyanis próbálkoztam a flash-ben az removeNode() és a appendChild() metódusokkal is. Ha a flashben kiírattam az xml tartalmát előtte és utána, szépen mutatta is a változtatást, de ha magát az xml file-t nyitottam meg, abban nem történt semmi.
A php-val viszont gondban vagyok. Szinte egyáltalán nem értek hozzá. A mellékelt kódot értem. Abban tudnál még segíteni, hogy a flasben hogyan kell rá hivatkozni és hogyan tudom onnan átadni neki a két cserélendő értéket?
A többieknek is köszönöm a készséget.
demo |
pl ilyen módon meghívhatod a php filedet flashből, ami elvégzi a munkát:
submit.onPress = function(){ if(valami.text!=""){ { myData.valamitphpnek = valami.text myData.sendAndLoad("save.php", myData, "POST") } } myData = new LoadVars() myData.onLoad = function(){ //amikor átírta és lementette a fájlod, akkor jön ez pl.: kiir.text = "kész a mentés stb..."; }
namár most ezzel a "valami.text" tartalmát át is küldheted a php fájlodnak, neki POST-oltad, ezzel még sokat variálhatsz.
//phpban ezel kapod meg $amiKell = $_POST['valamitphpnek'];
szerintem keress rá ezekre a kifejezésere, amiket itt írtam és közelebb kerülsz a megoldásodhoz.
Sok sikert |
Hamár úgyis megcsináltam tegnap 
Link
Az xmlolvasir.html-t szerveren(akár localhost) kell futtatnod, nyílván a php miatt csak így fog működni.
 |
Neked is nagyon köszönöm!
A sendAndLoad-ot próbáltam én is, csak egy valami hagytam ki:
"Az xmlolvasir.html-t szerveren(akár localhost) kell futtatnod, nyílván a php miatt csak így fog működni."
Sokat segítettél.
Egy nap alatt többet okosodtam általatok, mint a saját fejem után menve egy hét alatt.
Na de most kinek adjam a pontot? :)
demo
|
Nagyon szívesen!
A pontot meg, ha lehet, ne nekem . Szerintem Sztatty pont ugyanúgy megérdemli, sőtt talán többet segített mint én.
Csak hamár tegnap megcsináltam, gondoltam átadom tanulmányozásra  |
Sziasztok!
Van egy flash fájlom amit innen szedtem: gumióra.
Amint látjátok fekete a háttere egy html formázásnak köszönhetően, de maga a forrás SWF fájl Adobe Flash Playerben alapértelmezésben fehér hátterű.
Van egy progi, ami flashből csinál SCR fájlt és az tudna mellé egy XML fájlt csomagolni, amivel az SWF-nek elvileg be lehetne állítani a háttérszínét, a html oldalhoz hasonlóan. (A screensaver készítő)
Tehát a lényeg az lenne, hogy milyen feltételekkel lehetne az SWF fált kommunikáltatni az XML-el, hogy beolvassa tőle a színkód információt, mivel ez így nem html embed megoldás? (ugyanis így vakító hófehérben nem szerencsés a képernyővédő)
Hálából tudok pár magam kreálta black hátterű órás képernyővédőt küldeni... 
ps: az még tutibb lenne, ha mutatnátok valami progit, ami vissza tudja fejteni az SWF fájlok alap kódját és akkor ott elvileg át lehetne írni... Minden megoldás érdekel!  |
Ez a téma lezárásra került a moderátor által. A lezárás oka: Végtelen örömmel töltene el bennünket, ha figyelembe vennéd, hogy a Tudástárban egy téma - egy kérdés/probléma elv érvényesül (nem "rondítunk" bele más - pláne már lezárt - témájába, tessék újat nyitni). |