[Flash/Actionscript] xml.sendAndLoad

Pagina: 1
Acties:

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Heeft iemand ervaring met het gebruik van XML.sendAndload in Flash Actionscript? Ik zit er een beetje mee te pielen maar krijg tot nu toe weinig werkends. Online is de informatie zowat nihil. Ik kan er niet veel over vinden, afgezien van een docje ergens met een ASP script erachter. Ik draai Apache met PHP en Java/JSP en voel er weinig voor om die ASP te converteren, database te bouwen, etc, alleen maar om dat stukje Flash te kunnen testen.

Het laden van XML documenten gaat verder prima - ze zijn klein dus snel genoeg (daar geen hangup problemen, zoals zo veel anderen hebben). De Flash movie maakt gebruik van een request en response meganisme, dus XML.sendAndLoad is exact wat ik nodig heb. Alleen gebeurt er gewoonweg helemaal niks... Ik krijg zelfs geen error melding.

Hier is een voorbeeld script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
var message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+
    "<!DOCTYPE message SYSTEM \"message1_0.dtd\">\n"+
    "<message id=\"q12345\" language=\"nl\">\n"+
    "   <query>\n"+
    "       <node name=\"abc\"/>\n"+
    "   </query>\n"+
    "</message>\n";

var doc = new XML;
var response = new XML;
doc.parseXML(message);
response.onload = _root.msgHandler;
doc.sendAndLoad('http://localhost/server/xml.php', response);


Dit is maar een test, dus let niet op de methode hoe het doc-XML object wordt aangemaakt... Punt is dat doc.sendAndLoad (in de laatste regel) compleet niks doet. De PHP wordt niet eens aangeroepen (er wordt tekst naar een log-file geschreven, die dus leegblijft).

Heeft iemand hier wat info over?

[ specs ] [ Tweaker gallery ]


  • KillR-B
  • Registratie: Mei 2002
  • Laatst online: 20-01 20:49
Misschien onload met een hoofdletter L:
response.onLoad = _root.msgHandler;

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
KillR-B schreef op 26 augustus 2002 @ 21:33:
Misschien onload met een hoofdletter L:
response.onLoad = _root.msgHandler;
Heel goed. :) Ja, inderdaad, typo.
Maar dat bleek weinig op te lossen. De code was zowiezo een beetje een zooi. Nu is het zo:

code:
1
2
3
4
5
6
7
8
9
10
var message = "<message id=\"q12345\" language=\"nl\">"+
    "   <query>"+
    "       <node name=\"abc\"/>"+
    "   </query>"+
    "</message>";

var doc = new XML(message);
var response = new XML();
response.onLoad = _root.msgHandler;
doc.sendAndLoad('http://localhost/server/xml.php', response);


Maar dit werkt ook niet. xml.php wordt nog steeds niet aangeroepen (er verschijnt niks in 't log) en dus wordt het onLoad-event ook niet gestart... Ik krijg ook geen foutmelding of een hangup... Er gebeurt gewoonweg helemaal niks.

Btw: er staat nog een trace('done') aan 't eind... die verschijnt wel, dus de code wordt wel uitgevoerd...

Ik sta open voor meer suggesties...

[ specs ] [ Tweaker gallery ]


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Oke, de truuk blijkt 'm te zitten in de volgende regel:

code:
1
doc.contentType = "text/xml";


Als ik die toevoeg aan de code, dan wordt de laatste regel (sendAndLoad) wel uitgevoerd. Nu blijkt alleen dat de response leeg blijft.

Het PHP script heb ik ook aangepast, dit ziet er nu als volgt uit:

PHP:
1
2
3
4
5
6
7
<?php
    $fp = fopen('xml.log', 'a');
    fwrite($fp, "stuff here!\n");
    fwrite( $fp, "$HTTP_RAW_POST_DATA");
    echo "$HTTP_RAW_POST_DATA";
    fclose($fp);
?>


Dus wat binnenkomt wordt in een log gekwakt en terug ge-echo'd naar de output... Alleen komt die output niet aan in Flash: Er staat nog een trace(response.toString()); achter de doc.sendAndLoad() en er wordt dus niks geschreven...

Ik heb dit ook in een browser getest (met wat trace-output naar een textfield om te kunnen volgen wat er gebeurd), maar dat maakt niks uit. Dus de helft van sendAndLoad werkt: het senden. Nu het loaden nog...

[ specs ] [ Tweaker gallery ]


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Oke, ik ben er uit: het werkt! :) Het probleem ligt niet bij de Flash-code, die is goed. De reden dat er niks wordt ingelezen is omdat er geen goed XML-document wordt terug gestuurd. Wat fataal blijkt te zijn is deze regel aan het begin van je document wat je terug stuurt:

code:
1
    print "<?xml version=\"1.0\"?>";


Eventueel kan je ook nog een header meesturen die een content-type zet als text/xml, maar dat maakt voor Flash niet uit.

[ specs ] [ Tweaker gallery ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

LoL.... Die React is toch goed: zelflerend forum... Je komt er vanzelf wel achter :P

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1