【修正】任意の引数を持つ初期処理メソッドを共通的に実行したい
任意の引数を持つ初期処理メソッドを共通的に実行したい
やりたかったことを思いついたのでメモします。wonderflで実験したら成功しました。
引数の異なる初期処理メソッドを共通的に呼び出すコード - wonderfl build flash online
僕がしたかったことは、ゲームのシーンを表すSceneクラスをSceneManagerクラスへ予め登録しておくことで、シーンを初期処理→画面遷移効果→ローディング→シーン処理実行→画面遷移効果→終了処理という一定の処理を行わせるということです。こういうことをさせる場合、Sceneクラスには例えば初期処理の場合、
public function initialize(context:Object):void { }
といった空メソッドを定義し、タイトルシーンの実装ということでSceneクラスを継承したTitleSceneを定義、initializeメソッドを以下のようにオーバーライドします。
override public function initialize(context:Object):void {
// 初期処理
}
contextとは、シーン毎に必要なデータや処理を選択的に取得、実行させることが出来るようにするための自分ルールで、シーン単位で作成する「I~Context」というインターフェイス型で渡ってきます。これがObject型だといちいちインターフェイス型にキャストしないといけません。これが煩わしく感じていて、回避策を探してました。
解決法を日本語で言うと、「"initialize"という名前のメソッドを引数を1つ与えて実行する。"initialize"メソッドが定義されていなければ何もしない。」ということです。詳しくはwonderflのコードを覗いてみてください。
このパターン、多用してしまいそうだなぁ。
2010/11/09追加
成功していませんでした。→【修正】任意の引数を持つ初期処理メソッドを共通的に実行したい
AM902を引っ越しました。
ということで、AM902を引っ越しました。デザインも一新しています。
僕としては珍しく、ちゃんとWebデザインというものをしてみようと頑張った結果、いつもより小奇麗に出来たと思います。僕はデザイン周りがすごく弱いことは自覚しているので、ゲーム1つ1つでも、とりあえずちゃんと意識してデザインする習慣が必要です。
ということで、これからもよろしくお願いします!
「Error #1068」に気をつけろという話
「Error #1068」というランタイムエラーにはまってしまいましたので、調べた結果を記録しておきます。
see? 「Error #1068: int と * は共有できません。」というランタイムエラー再現 URL #wonderfl
2010-06-23 01:09:52 via web
どうやらfor eachとラベルを併用してcontinue <ラベル>;すると、1068のエラーが出る模様・・・。通常のfor分では発生しない。
調べてみると、1068はAS3のランタイムエラーの中でも特殊な位置づけみたいです。
breakやcontinueを使った複雑な制御フローによる1068ランタイムエラー。URL
ところで、これってコンパイラのバグなんですかね?
プロジェクト管理の初期設定をした
共同制作プロジェクトのマイルストーンをきった。始まりじゃ!
http://twitter.com/asahiufo/status/8191314100
プロジェクトをTracでどのように管理するかを綴っていく。恐らくいろんな方針転換があるだろうけど、その思考の過程がイイ!
http://twitter.com/asahiufo/status/8191542029
うちのTracは、1Tracで複数プロジェクトを管理する。Spark projectと同じ。
http://twitter.com/asahiufo/status/8191578079
基本的には1マイルストーンが1プロジェクトとなるよう運用してる。バージョン毎にマイルストーンをきったりもしてた。MyGameLibならv0.5とv1.0の2つのマイルストーンがある。ま、無秩序ってことね。
http://twitter.com/asahiufo/status/8191639591
今回はまずマイルストーンをきって、Discussionにプロジェクト用フォーラムを作成した。
http://twitter.com/asahiufo/status/8191745678
マイルストーンの説明に、議論場所としてそのフォーラムのトップページのURLを書いた。同じ場所にQuery Chart マクロでマイルストーンのバーンダウンチャートを貼っつけた。
http://twitter.com/asahiufo/status/8191798649
使い始め当初はTracのwikiを議論の場にしてたけど、残念ながら破綻した。チケットのコメント欄なら少しは使えるだろうけど、コメントの関連性が見えにくいので、長期の議論には向かない気がする。
http://twitter.com/asahiufo/status/8191941939
今後wikiは決定事項を載せていくドキュメントに使う。議事録的なまとめもwikiに書く。ということで、所定の場所にプロジェクトのルートページを作った
http://twitter.com/asahiufo/status/8192047618
このwikiページのURLもマイルストーンの説明に乗っける。
http://twitter.com/asahiufo/status/8192060169
まずは「ゲームの大まかな内容を決める」というチケットを登録。チケットの説明の中に、議論をするフォーラム内のTopicのURLと、決定事項を記載するwikiのURLを記述。
http://twitter.com/asahiufo/status/8192653016
チケットからリンクされたTopicとwikiページにはチケット番号を記述しておく。#48ってよ。
http://twitter.com/asahiufo/status/8192729247
これで基本的な準備はできたかと思う。基本的にチケットを中心に議論はDiscussion、ドキュメントはwikiと使い分けて運用してみる。さあ、ここからがスタートです。
http://twitter.com/asahiufo/status/8192899278
スタッフ一覧はどこに書くべきだろう?マイルストーンの説明か、wikiのプロジェクトページのトップか?
http://twitter.com/asahiufo/status/8193014841
一般的なプロジェクトだと、人員の構成とかってのはドキュメントに載ってたりするはず。ってことは載せるならwikiか。
http://twitter.com/asahiufo/status/8193044650
あと、wikiのプロジェクトページとフォーラムのトップページにマイルストーンのURLを貼っとかないといけない。
http://twitter.com/asahiufo/status/8193144012
準備完了。あとは「ゲーム 共同制作」という挫折フラグをどう乗り越えるかと言う話。
http://twitter.com/asahiufo/status/8193498586
『「この世に味方なんていない」と彼は言った。』のニゲ対応しました。
AM902 - 「この世に味方なんていない」と彼は言った。(ニゲ)
適当にコメント入れまくってみて下さい。
コメント画面がキーボード操作に対応してなかったので、その対応を行ったところ、えらい苦労しました。
フォーカス操作はあまり考えたことがありませんでした。