ラベル Flash の投稿を表示しています。 すべての投稿を表示
ラベル Flash の投稿を表示しています。 すべての投稿を表示

2010年5月17日月曜日

Flash覚書4

ゲームなどのように
条件によって行動が異なるようなFLashの場合、
どこかでループしてやる必要があるのだけれど
スクリプトが、いろいろなところに点在すると
見通しが悪いので

1フレーム
#include "./as/game.as"

2フレーム
gotoAndPlay(1);
のようにして

game.asに制御をまとめるのがわかりやすい
全てのムービークリップはスクリプトから制御できるからだ

1フレーム
#include "./as/game.as"
gotoAndPlay(1);

でもいいじゃないかと思ったりもするが、これは動かない

最小で2フレームでループさせることになるのだけれど、
この時、1フレームの画像は表示するが
2フレーム目の画像は表示しないようだ
スクリプトは
1フレーム
2フレーム
と実行されているが
画像が見られるのは1フレームで
2フレームの画像は変化が無い

そんでもって
fpsを1にしてみると
秒でカウントアップしているようで
1フレーム
2フレーム
で
1フレーム分の時間ということになっているようだ。

どういう理屈なのか、理解に苦しむのだけど
そういうことになっているのだから仕方ない。

なわけで

じゃぁ、ってこって
1フレーム
の終わりに
gotoAndPlay(2);
としてみる
動作的には、同じ事で、自然に行くか
スクリプトで行くかの違いだ。
するってーと

どうなるかってーと

スクリプトが…

要するに無限ループ的なものになっているらしい

ってことは
スクリプトで動いたフレームは
描画されないし、その時間が動くわけでなく
流れで動いたフレームしか絵が反映されないし
fpsで設定される
時間経過も反映しないってことみたいだ。

なるほど、そういうことか。

でも、
スクリプトが…
とエラーを出しながら絵が表示されてはいたから
絶対表示しないってことも無いのかもしれないな

2010年5月16日日曜日

Flash覚書3

あるものを段々速く動かす
なんて事をやる場合

例えば10fpsで
10フレームのものを動かすと
1秒で1フレーム動くというムービーになります。
もっと速く動かしたいなら
次を2フレーム飛ばせば、それらしく見えます
遅くしたいなら、
次でそのままにすれば、それらしく見えます

でも、これでは、速度は2倍、1/2で
その間がありません。

この間の速度を作るには、どうしたらいいか

0から9で間をあらわせません。
0から99なら10個の間が出来ます
実際には10フレームしかないので
画面に反映させる直前で0から99のspを
フレーム数にあわせて10で割ります。

fr = int(sp / 10);
tellTarget ("obj"){
    gotoAndStop(_root.fr);
}

要するに大きい値で計算しておいて
画面に落とす時、
その分で割ってやるってこと。

2010年5月5日水曜日

Flash覚書2

訳のわからないエラーがでる場合がある
プロセスエラー
これは、ちょっとした間違いなのだけど
やたら多く、本来とは違うところを示したりする

たとえば
tellTarget ("game01/ob" add i+4){
    gotoAndStop(_root.n-9);
}
一見、何が間違っているかわからないけど

tellTarget ("game01/ob" add (i+4)){
    gotoAndStop(_root.n-9);
}
カッコがたりないのだ

2010年4月9日金曜日

Flash覚書

シーン3から
シーン4
シーン4から
シーン5
というようにボタンを押すと動作するというFlashがあって
ある条件で
シーン3から
シーン5
に行かせようとしたところ
行かない

???
何で?

gotoAndPlay("シーン5","xxxx");
これは、シーン4のスクリプトから
コピーしてきたものだ。

シーン1からシーン5に飛ばしてみるか…
飛ばないや
えっ?

このシーンからは来ないようにするなんて
設定でもあったっけ…

調べてみるが、そのような設定はなく、
gotoAndPlayについてラベルに飛ぶのだという記述。
?
シーン5の
ラベル
xxxx

あっ?

シーン5のラベルを確認した
xxxy
違うんでやんの

そう。
シーン4からシーン5に飛ぶのが、おかしいのか
本来ならシーン5に行かないのが正解だ
えーーっ?
どういうこと?
行かなかった、謎は解明できたけど
なんで飛ぶんだろ

2008年3月19日水曜日

Flash覚書

非常に忘れやすくなった

かつてやったことなのに

どうやったんだっけなぁ

って

また調べなおすなんてことがあるもんだから

書き留めて置くようにしている


ということで

FlashでPodCastingXMLリストからMP3をプレーヤーのように

Flashで

XMLファイルを使うには

XpathAPIを使うのが便利である

Xpathの使い方は、

第33回 ActionScriptでXMLデータを自由に検索・抽出してみよう:ITpro

を参考にするといい。


ただ、2004Proの場合

DataBindingClasses

というのを作っておかないと使えないっぽい


今回は、リストコンポーネントから

コンポーネントインスペクタの

「スキーマ」から「サンプルXMLからスキーマを読み込み」で

サンプルとなるXMLを指定する

次に

「バインディング」にして「+」で「バインディングの追加」ダイアログから

「dataProvider:XML」を選択して「OK」

次に

「名前」「bound to」のところの値の方が空白になっているので

そこをクリックすると

虫眼鏡のアイコンをクリックするとダイアログが現れ

入れる項目を指定

コンポーネントを指定してスキーマを選択


これで、読み返してわかるかなぁ、自分