我有一位与我合作的Flash开发人员。这个人正在AS2中构建一个工具,它将提供一个发送投票数据的界面(名字,姓氏,电子邮件地址,投票(类别中有100个项目,用户可以选择一些子集来声明“最佳”)。
一切都很公平,Flash开发人员会将数据发布到我将开发的PHP应用程序中,并且我将数据存储在MySQL中。此Flash开发人员尚未对数据库或Web应用程序进行大量工作。
我想将数据返回给Flash应用程序。我希望能够返回“电子邮件地址无效”或“连接到数据库的问题”或“接受投票信息”消息。我的直觉是想要发回JSON或XML数据。但我想知道AS2中是否有工具可以轻松消费此类响应。
我希望看到一些使用JSON或XML数据的AS2代码的“Hello World”类型示例,这样我就可以让Flash应用程序与PHP应用程序进行良好的交互。我的理解是AMF不在桌面上,因为它是AS2,但我对两端的工作持开放态度,因为它是AS2的约束。
答案 0 :(得分:1)
下面给出一个例子。
<强> XML:强>
<alldots>
<dotname id="bigDot" color="0xff0000" url="http://www.fletchermartin.com/" photos="8" />
<dotname id="otherDot" color="0x000066" url="http://www.ajc.com/" photos="8" />
<dotname id="thirdDot" color="0xCC0099" url="http://www.tiffanybbrown.com/" photos="0" />
</alldots>
AS2代码
var dots:XML = new XML();
dots.load('bigdot.xml');
dots.onLoad = function(success:Boolean){
if(success){
if(dots.status == 0){
var dotsToXMLString:String = new String(); // initializes a new string variable
dotsToXMLString = dots.toString(); // converts dots XML object to a string and stores it in dotsToXMLString.
var dotsXML:XML = new XML(dotsToXMLString);// creates new XML object with the string contents from above.
dotsXML.parseXML(dotsToXMLString); // parses the string from above.
var dotsNodes:Object = dotsXML.firstChild; // Saves the firstChild (in this case, the outermost element) as an object
var dotsNodesChildren:Object = dotsNodes.childNodes; // Saves the childNodes of firstChild as an object
for(i=0;i<dotsNodesChildren.length;i++){
var newObj:Object = dotsNodes.childNodes[i].attributes.id; // creates a new object out of the child node's id.
var newObjColor:Color = new Color(newObj); // creates a new color object with newObj as its target
var theColor:Number = dotsNodes.childNodes[i].attributes.color; //retrieves the hex code value (number) of the attribute color
newObjColor.setRGB(theColor); // sets the RGB value of newObjColor.
}
} else {
trace("Problem parsing XML.");
}
} else{
trace("Could not load XML");
}
}