PHP和AS2之间的通信代码?

时间:2009-06-26 11:23:30

标签: php xml flash json actionscript-2

我有一位与我合作的Flash开发人员。这个人正在AS2中构建一个工具,它将提供一个发送投票数据的界面(名字,姓氏,电子邮件地址,投票(类别中有100个项目,用户可以选择一些子集来声明“最佳”)。

一切都很公平,Flash开发人员会将数据发布到我将开发的PHP应用程序中,并且我将数据存储在MySQL中。此Flash开发人员尚未对数据库或Web应用程序进行大量工作。

我想将数据返回给Flash应用程序。我希望能够返回“电子邮件地址无效”或“连接到数据库的问题”或“接受投票信息”消息。我的直觉是想要发回JSON或XML数据。但我想知道AS2中是否有工具可以轻松消费此类响应。

我希望看到一些使用JSON或XML数据的AS2代码的“Hello World”类型示例,这样我就可以让Flash应用程序与PHP应用程序进行良好的交互。我的理解是AMF不在桌面上,因为它是AS2,但我对两端的工作持开放态度,因为它是AS2的约束。

1 个答案:

答案 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");
    }
}