2006年10月13日
| Flashで悩んだりとかのウダウダ。
| ひる |
| ブルーモンクのページを以前作ったが、調子が悪い。 始めの頃はちゃんと動作していたスクリプトが、突然動かなくなったりするのだ。
Macromedia Flash(今はAdobeに買収されてしまったが)には「Action Script」というインタープリタ言語がある。 スゴイ高機能なのだが、最近のFlashでは構造が複雑なおかげで、使いこなすのはなかなか難しい。 うまく使えば、ネットで公開されているようなFlashゲームが作れる(Flashムービーはスクリプトをほとんど使ってないのでカンケーない)。 なかにはストゼロ並みの格ゲーとかもあったりして、売り物に出来そうなくらい秀逸なものもある。 今は知らんが、昔よく売ってたタイピングゲームはFlash製が多かったね(激打とか)。
で、オレがやりたいのは、そんなスゴイ技術ではなく、もっと簡単なヤツなのだが・・・ 何でかうまくいかない。 ライブのスケジュールをテキストファイルで置いといて、それをFlashから読み出してスケジュール一覧に表示する・・・ 一見スゴく簡単なスクリプトなのだが。
最初のステップでは、ただ単に過去分も含めたすべてを一括表示、 はみ出た分はスクロールして見ろ、というもので使い勝手が悪かったので、それを月単位の表示に改めた。 スクリプトで今が何月かを計算して、その月の変数を返す。 テキストファイル内にある同じ変数の内容(今月のスケジュール)を、まず表示する。 そこで、カーソルキーの上下を押すと前月、次月を表示できる・・・ と多少の難関はあったものの、問題なくスクリプトは完成したのである。
が、しばらくその状態で運用しているうちに、なぜか突然カーソルキーが効かなくなった。 当月分以外表示されなくなったのである。 理由は分からない。スクリプトは変えてないし、テキストファイルの表記も正しい。 どうやら、同じFlashファイル内の別のレイヤーでやった作業が影響しているっぽい・・・
最初に疑ったのは、Linkに追加したスクロールバーだ。 Flashにはスクロールバーやラジオボタン、カレンダー、プログレスバーなどを一から作らなくてよいように、 「コンポーネント」という項目にこれらのテンプレートが付属している。 ブルーモンクのリンクは最初はページ内に収まるほどだったが、少しずつ増えて入りきらなくなったので、スクロールバーを追加して見られるようにしたのだ。
どうもこれの後からダメになったような・・・外してみよう。 がしかし、スクロールバーのコンポーネントを削除しても、状況は変わらない。 試しに真っ白な新規ページを作って、そこにスケジュールのオブジェクトとレイヤーだけ描いてみると・・・動くのだ、やはり。 明らかに何か他の部品が動作を阻害している。
原因が分からないので、やむなく一からまた作ることにした。 今度はまったく同じ構造ではなく、ステージをムービークリップ(左側のボタン)単位で別々に分けてみた。 (最初のはすべて同じステージ上にあった) 今回はリンクメニューのスクロールバーを追加した後も、問題なく動作していた。 ただ、ステージを個々に分けると、それぞれのタイムライン制御が出来ず(出来るのかも知れないが、今のオレには知識がない)、 あるボタンを押すと別のメニューが消えずに残ってしまう。
ま、この辺はオイオイ直していくとして、と思ってクリップを追加しているうちに・・・また動かなくなったのだ! まったく同じように、スケジュールの上下移動が効かなくなっていた。 結局どうやっても症状は改善せず、今は諦めて元の一括スクロール形式にしている。 (でもこのスクロールバーもなんか動作がおかしいんだよな・・・ダセェ)
で、新しい方式にトライし始めた。 コンポーネントにあるカレンダーを使って、日付をクリックしたらライブスケジュールが表示されるように。 案外やってみたら簡単に表示は出来たのだが、なにやらテキストフィールドの表記が変だ。 フォントサイズとかが制御できてないし、「複数行表示」にチェックを入れてあるのに一行目しか出ない。とても変なのだ。 昨日はそればっかり4時間くらいやっていたが、治らなかった。 もうなんか、イヤになってきた。 Flashってこんなんばっかり? オレの使い方が悪いだけ? ていうかそもそも、Flash使ってこんな用途ばかりなら、それこそPerlでやった方が早くねぇ・・・? なんか空しくなってきたぞ。
どうせオレのやりたいことがFlashだけでは出来ないことが分かってきたのだ。 CGIは必須なのだ。 だったら初めから全部CGIでやった方がイイって気がするよね・・・
Perl、覚えるか。そろそろ。 | | | |
|