イベントの送出
Webのこと // 2008年11月30日 - 01:23
自作クラス内の処理の中で、あるタイミングでイベントを起こしたい時があります。例えば状態が変化したとき、 Event.CHANGE イベントを送出したい。そんな時は、 dispatchEvent メソッドを使います。
使い方は簡単で、送出したいタイミングで
this.dispachEvent( new Event(Event.CHANGE) );
これでOK。
戻り値は Boolean(trueまたはfalse)で、イベントの送出に成功したら true 、失敗したら false を返します。
- コメント(0)
- トラックバック(0)
未定義である可能性が高いメソッドの呼び出し - ActionScript
Webのこと // 2008年11月30日 - 01:01
Flash Developで何をやっても「未定義である可能性が高いメソッドの呼び出し」というエラーが出続けていました。しまいにはStrictモードでコンパイルすることをやめてみると、コンパイルエラーはでなくなりましたが正常に動作しませんでした。なぜだー!と嘆いていると、あることに気づいたんです。
宣言している変数名と、インポートしているパッケージ名がかぶっている・・・!!
・・・これか?と思って変数名を変えてみたところ、無事に動きました。
あぁ~よかった。例えばこのような場合に起こります。
package
{
import flash.display.Sprite;
import shacolon.Hoge;
public class MyClass extends Sprite
{
public function MyClass() : void
{
var shacolon : Sprite = new Sprite();
shacolon.getChildAt(0);
}
}
}
→未定義である可能性が高い getChildAt の呼び出しです。
Flash Developでtrace()を実行するには
Webのこと // 2008年11月24日 - 15:04
Flash Developは、フリーの中で最強と言っても過言ではないほど、FlashとAIRの開発環境が整っています。ただし、Windows環境下で.NET Framework 2.0以降がインストールされている必要があるので注意が必要です。また、プロジェクトをビルド(またの名は「コンパイル」、「パブリッシュ」)するにはFlex SDKが必要になります。
無料でFlashやFlashベースのAIRが開発できてしまうなんて、いい時代になったもんです。(FlashがまだMacromedia製品だったときは、Flashの製品版を購入しないとswfにコンパイルできませんでした。)
ただ、このFlash Developにはちょっと問題もあって、デバッグ機能がありません。例外をスローしてもコンソール出力されないばかりか、Flashではお馴染みのtrace()すら使えないんです。こりゃ困った。ということでそれを解決するためには2つの方法があって・・・
1. FlashConnect.trace() を使う
2. デバッグ機能付きのFlash Playerを入手する
1は文字列の出力しかできないのに対し、2はオブジェクトを指定するとオブジェクトの型(例えば[String Object]など)を出力してくれるので、オススメは断然、後者です。ただ、デバッグ機能付きのFlash Playerを入手する必要があるため、ちょっと文字列が出てくればいいやという人は1でOKです。
1. FlashConnect.trace() を使う
org.flashdevelop.utils.FlashConnect をインポートするか、ソースコード内に直接書いちゃって、trace()メソッドを使用します。スタティックメソッド(静的メソッド)なので、インスタンスを生成する必要はありません。
import org.flashdevelop.utils.FlashConnect; でインポートして、
FlashConnect.trace() を使うか、
org.flashdevelop.utils.FlashConnect.trace(); で使います。
2. デバッグ機能付きのFlash Playerを入手する
http://www.adobe.com/support/flashplayer/downloads.html
ここでスタンドアロンで動くデバッグ機能付きのFlash Playerを入手して、c:\Program Files\Adobe\Players かどっかに FlashPlayer.exe を入れておきます。
あとはWindowsのフォルダオプション(XPならコントロールパネルのフォルダオプションから、「ファイルの種類」(だったかな?)を選択。Vistaならコントロールパネルのプログラムから、「あるファイルの種類を特定のプログラムから開く」を選択する)で、拡張子「.swf」をさっき入手したFlash Playerで開くように設定を変更します。そしたら、Flash Developの方では単純に trace() を呼び出せばコンソールに出力されるようになります。
※swfを開くプログラムをデバッグ機能付きFlash Playerに変更しても出力されない場合、Flash Developの[Project]->[Properties]->[Test Movie]の設定を変更してみて下さい。
ちょっと面倒ですが、こうやってちょっとずつカスタマイズしていけば、かなり使い勝手のいい開発環境が無料で手に入ります。
Flash Develop でコンパイル時にエラー - Adobe AIR
Webのこと // 2008年11月24日 - 03:21
Flex SDK 3.0から3.2にバージョンアップさせたところ、Flash DevelopでAIRのコンパイル時にエラー発生!DOS窓は一瞬で閉じてしまうため、あまりはっきり見えないけど下のようなエラーが出ている様子。
error while loading initial content.
このエラーについて調べたところ、QAサイトでこんなの見つけました。
http://bugs.adobe.com/jira/browse/FB-15687
要は application-app.xml の名前空間を変更すればいいとのこと。
<application xmlns="http://ns.adobe.com/air/application/1.0">
↑これをこれ↓に変えたら無事にコンパイルできました。
<application xmlns="http://ns.adobe.com/air/application/1.5">
よかったよかった。