2009-06-26 6 views
0

私は一緒に働いているFlashデベロッパーを持っています。この人は、投票データ(ファーストネーム、ラストネーム、Eメールアドレス、投票)を送信するインターフェイスを提供するツールをAS2に構築しています(カテゴリー内に100アイテムあり、ユーザーは「ベスト」を宣言するためにいくつかのサブセットを選択できます)。十分PHPとAS2の間のコミュニケーションのコードですか?

すべての公正、フラッシュdevのは、私が開発するPHPアプリにデータを掲載します、と私は、MySQLにデータを格納します。このフラッシュdevがデータ​​ベースやウェブアプリで多くの作業を行っていません。

データをFlashアプリケーションに戻したい "電子メールアドレスが無効"または "データベースへの接続に問題がある"または "投票情報が受け入れられました"というメッセージを返すことができるようにしたいJSONまたはXMLしかし、私はAS2にそのようなレスポンスを簡単に消費するツールがあるのだろうかと思っています。

JSONまたはXMLデータを使用するAS2コードの「Hello World」タイプのサンプルを見て、FlashアプリケーションとPHPアプリケーションがうまくやりとりできるようにしたいと考えています。私の理解は、AMFはAS2であるためテーブルに載っていませんが、AS2という制約が与えられていれば、両者でうまくいくものにはオープンです。

+0

AMFは、あなただけではなくAMF3よりAMF0を使用していることを確認する必要があり、AS2で正常に動作します。 –

+0

あなたのコメントに以下のように答えてください:XMLはクラスが組み込まれています – back2dos

答えて

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"); 
    } 
} 
+0

上記のコードは多く必要ありません。 onLoadメソッドは自動的にXMLを解析し、ロードします。 dotsXMLオブジェクトを作成するのではなく、内部的に 'this'を参照することができます。このコードはdots XMLオブジェクトの一部です。 –

+0

私はAS2プログラマではありませんが、他の答えがなかったので、助けを求めるコードスニピットが見つかりました。もし私がAS2で作業するなら、私は上記のコードが(個人的に)前進し、潜在的に改善する良い出発点であることが分かります。私はあなたの批判に感謝します:)それは私たちがプログラミングと呼ぶこのゲームではどのように良くなっているのでしょう:)) –

+0

心配しないで!それは良いスタートです。大きな問題は、AS2のXMLクラスがあまりにも多くの作業をしていることです。単一のクラスでHTTPリクエストを処理したり、HTTP経由でデータをロードしたり、XMLを解析/トラバースすることはできません。アドビはAS3でこの問題を解決しました(そしていくつか!)。 –

関連する問題