AS3.0旅情7 ~Classの所持品確認~
さて、いきなりですが、一つのコンテンツに幾つかの子コンテンツがあり、必要に応じてプロパティ実装をしたと仮定します。
Interfaceを利用していれば、共有実装プロパティの概要は理解できますが、小規模のプロジェクトには余り利用しません。
そうした時、全ての子コンテンツに同一の親処理を通過させ、プロパティがある場合のみ処理を実行をさせたい場合は以下のように処理を分岐させる必要があります。これは、無いプロパティへのアクセスはコンパイルエラーになってしまうためです。
そうした際に便利なのが“hasOwnProperty”です。Object継承さえしていれば利用出来ます。
その際、該当プロパティをpublicな属性にするのを忘れないでください。//アプリケーションappにmethodという関数が含まれていたら実行(通常) if (app.hasOwnProperty("method")) app["method"]();
そして、混乱している最中思いついたメソッドが以下です。今見ると泣けますね。
//アプリケーションappにmethodという関数が含まれていたら実行(迷走) for (var p:String in app) { if (p == "method") app[p](); }
効率を無視すれば、動くのが悩ましい。。