SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Adobe Developer Connection(AD)

Eclipseを使用したFlex + PHP開発

Flex BuilderとZend Studio for EclipseでFlexアプリケーション作成

  • このエントリーをはてなブックマークに追加

Flexアプリケーションの作成

 PHPコードの準備が整ったので、次に、PHPクラスを呼び出すFlexコードを作成することにします。まず、Eclipseの画面右上のアイコンをクリックし、画面がFlex開発パースペクティブになっていることを確認します。そして、flex_php.mxmlファイルを開きます。

 ここではサーバと通信するためにRemoteObjectを使用するので、mx:RemoteObjectタグを追加します。destination属性とsource属性の値を「MyService」に設定します(これがPHPのクラス名です)。endpoint属性の値としては、amfphp/gateway.phpファイルのURLを設定します。筆者のマシン環境では、このURLはhttp://localhost/amfphp/gateway.phpになります。また、id属性の値として「myRPC」を入力し、このオブジェクトに名前を付けておきます。完成したコードは次のようになります。

<mx:RemoteObject id="myRPC" 
    destination="MyService" 
    source="MyService"
    endpoint="http://localhost/amfphp/gateway.php"/>

 次に、MyServiceのhelloWorld()メソッドを呼び出し、そして、所定の引数に値を設定するためのコンポーネントが必要となります。ラベル、テキスト入力ボックス、ボタンのレイアウトを整えるために、アプリケーションにmx:HBoxコンポーネントを追加します。ここでは、 TextInputのidを「myText」とし、ボタンのclickイベントから所定のserviceメソッドが呼び出されるように設定します。完成したコードは次のようになります。

<mx:HBox top="10" left="10">
    <mx:Label text="Name value:"/>
    <mx:TextInput id="myText" width="150"/>
    <mx:Button label="Call MyService->helloWorld()" click="myRPC.helloWorld(myText.text)"/>
</mx:HBox>

 最後に、結果およびエラーを処理するために、RemotesObjectに何らかのイベントリスナを定義します。MXMLアプリケーションにmx:Scriptタグを追加し、この中にRemoteObjectが結果を返す際に呼び出される関数と、エラーが発生した際に呼び出される関数の2つを定義します。これらの関数は、単にそれぞれの旨を伝えるメッセージを表示するだけです。

<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        
        private function resultListener(event:ResultEvent):void {
            Alert.show(event.result as String, "Result");
        }
        
        private function faultListener(event:FaultEvent):void {
            Alert.show(event.fault.faultString as String, "Error");
        }
    ]]>
</mx:Script>

 関数が作成できたら、それぞれが所定のイベントを処理できるように設定し、これらをRemoteObjectにリンクさせる必要があります。次に示すタグの最終行を参考にしてください。

<mx:RemoteObject id="myRPC" 
    destination="MyService" 
    source="MyService" 
    endpoint="http://localhost/amfphp/gateway.php"
    result="resultListener(event)" fault="faultListener(event)"/>

 これでコードの動作検証を行う準備が整いました。ツールバーの「実行」アイコンをクリックし、Flexアプリケーションを起動してみます。アプリケーションがデフォルトのブラウザで開いたら、テキスト入力ボックスに任意の名前を入力し、そのそばのボタンをクリックします。図13に示すような応答が表示されるはずです。

図13. アプリケーションの動作検証
図13. アプリケーションの動作検証

次のページ
コードのデバッグ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Adobe Developer Connection連載記事一覧

もっと読む

この記事の著者

Mihai Corlan(Mihai Corlan)

アドビ プラットフォームエバンジェリスト。以前は、コンピュータサイエンティストとしてFlex Builderのプロジェクトに従事。アドビ入社以前は、InterAKT Online(2006年にアドビと合併)でシニアデベロッパーとして、e-shop、ニュースレター、アンケートやWeb開発者向けのRAD...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4540 2009/11/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング