書き物

技術とか作った物の話とか愚痴文句感想など

【修正】任意の引数を持つ初期処理メソッドを共通的に実行したい

任意の引数を持つ初期処理メソッドを共通的に実行したい

昨日のエントリーのコードが間違っていました。initializeメソッドを定義しない場合は何もしない・・・という処理を書いたつもりが、そんなメソッド存在しませんという例外が出ていました。ブラウザのFlashPlayerをいつの間にかアップデートしていたのか、デバッグ版じゃなくなっており、例外の発生に気づいてませんでした。

initializeメソッドが定義されているかどうかというコードは、in演算子を用いてチェックすれば良いようです。 if (!(“initialize” in this) return;

wonderflありがたや。

任意の引数を持つ初期処理メソッドを共通的に実行したい

やりたかったことを思いついたのでメモします。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」というランタイムエラーにはまってしまいましたので、調べた結果を記録しておきます。

はてな記法Twitter引用お試しです。

ブログに残す

Twitterで浮かれている場合じゃないので、こっちにものを書く習慣を取り戻そうと思います。

真面目な話Twitterって、そもそも情報を残すために作られてないので、そこに技術情報を垂れ流しても勿体無いです。

プロジェクト管理の初期設定をした

共同制作プロジェクトのマイルストーンをきった。始まりじゃ!

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

使い始め当初はTracwikiを議論の場にしてたけど、残念ながら破綻した。チケットのコメント欄なら少しは使えるだろうけど、コメントの関連性が見えにくいので、長期の議論には向かない気がする。

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 - 「この世に味方なんていない」と彼は言った。(ニゲ)


適当にコメント入れまくってみて下さい。


コメント画面がキーボード操作に対応してなかったので、その対応を行ったところ、えらい苦労しました。

フォーカス操作はあまり考えたことがありませんでした。