ラベル 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」のところの値の方が空白になっているので

そこをクリックすると

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

入れる項目を指定

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


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