Create an xml file from a flash file

K, so i am working on this project where all the calculations were going to be calculated and used in the flash file to use and display.  The scope has changed now so they want the results set to be exported to an xml file and the parsing and interface will be done somewhere else.  I work in php and know how I would do this in php but i have already written all the code in flash for the calculations and i dont want to spend the time to convert it all.  Is there anyway in flash to write an xml file to a server etc or would it be easiest to pass the information into php or something and try doing it that way.  How would i go about doing that if that was the best way?
LVL 4
Brant SnowAsked:
Who is Participating?
 
RobConnect With a Mentor Owner (Aidellio)Commented:
then in php you can pick up this XML in the $_POST['HTTP_RAW_POST_DATA'] variable

the other way to do this is to use the LoadVars object which just allows you to send variables to php like this:

var lv:LoadVars = new LoadVars();

lv.xml = "<element2>textNode1 String value</element2>";
lv.type = "Describe the type";

lv.send("http://mydomain.com/myscript.php");

so that in php you have

$_POST['xml'];
$_POST['type'];

etc
0
 
fiboCommented:
The idea of working from data ->  php -> flash -> xml would frighten me, and I would shortuct the flash part. Most of the computations done there would probably easily be translated as php and xml...
0
 
RobOwner (Aidellio)Commented:
No you can do this easily with Flash by building the xml in flash based on your calculations and then send that data to PHP.

Use the XML class
// create an XML document
var doc:XML = new XML();
// create three XML nodes using createElement()
var element1:XMLNode = doc.createElement("element1");
var element2:XMLNode = doc.createElement("element2");
var element3:XMLNode = doc.createElement("element3");
// place the new nodes into the XML tree
doc.appendChild(element1);
element1.appendChild(element2);
element1.appendChild(element3);
// create two XML text nodes using createTextNode()
var textNode1:XMLNode = doc.createTextNode("textNode1 String value");
var textNode2:XMLNode = doc.createTextNode("textNode2 String value");
// place the new nodes into the XML tree
element2.appendChild(textNode1);
element3.appendChild(textNode2);
trace(doc);
// output (with line breaks added between tags):
// <element1>
// <element2>textNode1 String value</element2>
// <element3>textNode2 String value</element3>
// </element1>

Open in new window

0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
RobOwner (Aidellio)Commented:
then you can use the sendAndLoad() function to send the xml to php.  this will wait for a reply from the php page.  if you don't need a response from the server then just use send()
var login_str:String = "<login username=\""+username_txt.text+"\"
password=\""+password_txt.text+"\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.php",
myLoginReply_xml);
function myOnLoad(success:Boolean) {
if (success) {
if ((myLoginReply_xml.firstChild.nodeName == "packet") &&
(myLoginReply_xml.firstChild.attributes.success == "true")) {
gotoAndStop("loggedIn");
} else {
gotoAndStop("loginFailed");
}
} else {
gotoAndStop("connectionFailed");
}
}

Open in new window

0
 
Brant SnowAuthor Commented:
But when i send the xml over to the php i didnt see you reference a file.  Where can i use $_POST['xml'];
$_POST['type'];?  

When it is waiting for a response from the php as you said what page or coding is that directed at?
0
 
RobOwner (Aidellio)Commented:
There isn't a need to reference a file as flash has built in capabilities to create an xml document on the fly, just like you would in php
0
 
RobOwner (Aidellio)Commented:
There are 2 ways you can send data and xml to PHP

1) using the XML class

2) using the LoadVars class
0
All Courses

From novice to tech pro — start learning today.