ActionScript先ずは下のFlashの円にマウスポインタを合わせたり、クリック・ダブルクリックなどするとそれに伴ったアクションがあります。2019-01-14追記:Flashのサポート終了に伴い、本ページからFlashへのリンクを削除しました。このFlashの仕様をコードに書きおこす際、1つのクラスに全ての機能を書き込む方法もありますが(この場合はその方がコード量が少なくなる)、折角なのでOOに基づいたコードを書いてみました。OOのパターンを適応途中に飽きたので少し崩しています(ぇー)。ソースコード上のFlashは以下の三つのクラスで描かれています。Main.asBall.asEventMonitor.asMain.asMainクラスではマウスイベントをキャッチするBallクラス(後述)とその結果を観測し画面左上に出力するEventMonitorクラス(後述)のインスタンスを生成し画面への出力登録を行っています。ball変数をEventMonitorのコンストラクタに渡しているのはEventMonitorからマウス座標等を取得する為のballインスタンスのメソッドを呼び出すからです。今回はイベントを発生させるオブジェクトがball一つですので後述のコードにしましたが、複数あるときはパターンに合わせた方が良いと考えます。0;addChild(monitor);}}}Ball.as次に、冒頭のFlashに描かれている青い円を描画するBallオブジェクトを読んでみましょう。コンストラクタのBallとinit()メソッドで青い円を描画しています。次にregEvent()メソッドでイベントリスナーの登録手続きを書いています。この規模のコードですとMain.asでball.addEventListener(ホニャララ)とリスナー登録しているコードを散見しますが、オブジェクトの振る舞いはオブジェクト毎に持たせた方がOOぽいし、何だか再利用できそうな希望の片鱗を与えてくれるのでBallクラスにregEvent()メソッドを付けてみました。これはMainクラスから呼び出されることで、ballのマウスのイベントリスナーの一括登録が行われます。後の二つのメソッド、mousePosition()とgetState()はEventMonitorクラスから呼び出されるものです。このメソッドを通して、画面左上にマウス座標等を表示します。ここでも機能の分離を行っています。情報を投げる側(Ball)と観測し表示する側(EventMonitor)です。event_state;}}}EventMonitor.as最後になりましたが、マウスイベントの内容やマウス座標の表示を行うEventMonitorクラスです。onEnterFrame);ですね。フレームが更新される毎に、第二引数に登録したonEnterFrame()メソッドを実行します。Event.ENTER_FRAMEはアニメーションさせる時に良く使うプロパティですが、ここではマウス座標やマウスクリックイベント情報を取得し出力する為に使われています。text;}}}AS3になりJavaやC#に似て格段に扱いやすくなったように感じます。OOはGUIにマッチする設計手法ですしね。話し変わりますが、以前windows.hを用いたGUIのコードではイベントループで悪戦苦闘してたっけ。今なら多少は上手く書けるかな。一発で納得のいくものができればいいけれどね・・・タイトルは反語として読む。Loaderクラスサーバ上にあるイメージファイルをダウンロードして表示するサンプル。前回までのUIからは一旦離れて、PaintShopのエアーブラシみたいな機能のみのFlashを書いてみました。今記事で4回目ですねー。デモは以下のページに用意しました。SQLConnection、SQLStatementクラスAIRアプリケーションからSQLiteのDBにアクセスするには主にSQLConnectionとSQLStatementクラスを用います。(2)各ノードのドラック&ドロップ今回は、各ノードのD&Dの実装です↓。Blog"ノードのみドロップで位置固定します。(3)各ノード間の線分に文字列を表示なんだか段々色がダークになってきましたね。お馴染みですが前々回と同じくRキーで全ノードがランダムに散ったり各ノードをD&Dできたりします。(1)ノード間隔の安定化ということで、下のFlashを作ってみました。コメントをキャンセルメールアドレスが公開されることはありません。