- ベストアンサー
flash初心者です script3.0のことで教えて欲しいのですが
初心者というか、flash初めて一週間くらいです。 昨日からようやくアクションスクリプト3.0の勉強を開始しました。 動画の編集やモーションエフェクトなどを作っていますが、言語を使ったプログラミングはうまれて初めてです。 初心者用の教本(一週間でマスターするアクションスクリプト3.0)を買って勉強してますが、プログラミング事態がはじまてなので、本の説明だけではよく分かりません。 どの問題をやっても、分かったような分からないようなという感覚です。数学も特に得意ではないし、理解の仕方がよくわかっていないのかもしれません。 そこで教本に出てきたスクリプトを書きますので それを解説してくれるような方がもしいましたら あつかましくも、お願いしたいのですが(汗) ●サンプル● このフラッシュは、カロリーを入力すると、それを散歩で消費するには 何分歩いたらよいかが分かるというプログラムです。 一分間の散歩で2.7kcalを消費するという設定です。 フラッシュの見た目はこんな感じです↓ 摂取カロリー 「 」kcal 散歩にすると 「 」分 となっていて、カロリーのとこに数字を入力して、たとえば720と入力すると、散歩のフィールドに266.66…とでます。 インスタンス名は 摂取カロリーのテキストは 「value_txt」 散歩のテキストは 「result_txt」 です。 そして教本のスクリプトは以下のようになっています。 //テキスト変更時に実行する変数を定義 function onTextChange(e:Event){ var kcal = value_txt.text; var min = kcal / 2.7; result_txt.text = min; } //テキスト変更時のイベントを登録する value_txt.addEventListener(Event.CHANGE,onTextChange); 以上です。 教本の説明では分かったようなわからんようなといった感じです。 どんどん次のレベルに行くし… このスクリプトを理解するにあたって理解しやすい 覚え方とかないでしょうか? どこかでしっかり根本をつかまないと進むにつれチンプンカンプンに なって行きます(泣) てかこの本はホントに初心者ようなのかと疑問です。 説明がいい加減な気がします。 どうぞよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私は AS3 初心者どころか,全く作成したことのない者ですが, だいたいの意味はわかります。 #1 の方の回答の一部分について補足です。 > ちなみに > function onTextChange(e:Event){ > ↑テキストが変わった時にe:Eventを行え。e:Eventの中身は以下の{}の中。 ここは違います。 ここは質問で書かれていらっしゃるとおり, > //テキスト変更時に実行する変数を定義 > function onTextChange(e:Event){ が正解です。 決して, > テキストが変わった時にe:Eventを行え。 > e:Eventの中身は以下の{}の中。 ではなくて, // テキスト変更時に実行する変数を定義 // (実行時にはイベントリスナーから 引数e を受け取る ) function onTextChange(e:Event){ というような意味です。 「value_txt」 は単なる TextField であって, 何某かのイベントを受け取る機能などは備えていません。 ※AS2までは TextFieldクラスの中にイベントハンドラまで入っていましたから TextField自体がイベントを受け取る機能も備えていました。 しかし,AS3では備えていません。 function onTextChange(e:Event){ } では { } 内の動作をするように関数として定義してあるだけです。 純粋に単に定義してあるだけです。 ほっておけば実行されることはありませんし, 「value_txt」 に対する関数であるというような関連付けもどこにもされていません。 単なる関数「onTextChange」です。 一番最後の行, //テキスト変更時のイベントを登録する value_txt.addEventListener(Event.CHANGE,onTextChange); ここで「value_txt」 に対するイベントリスナーを追加することによってはじめて, 「value_txt」 に CHANGE というイベントが発生したときに, 単なる関数「onTextChange」が実行されるようになります。 ただし, 書かれていらっしゃるものの場合, e:Event は意味を成しません。 使わないけど一応書いてあるだけです。 「onTextChange」の実行時,引数 e にはイベントが入って来ます。 このイベントeに対するターゲットが e.target などによって,取得するようなことができるので, 関数実行時に,何に対するイベントが発生したのかがわかります。 これによって, イベントeに対するターゲットが関数に絡んでした場合でも, 複数のもの(value1_txt,value2_txt,value3_txt,… など)に対して, 同じ関数を使い回しするようなことが可能になります。 つまり, 関数は関数で,何に対する関数でもない「onTextChange」を定義することによって, その関数を利用するときに, 対象物を決めることが可能になります。
その他の回答 (2)
- Tanigucchi
- ベストアンサー率70% (43/61)
スクリプトの解説は、ANo.1 さんがされていますので以下参考まで。 私はプログラマ系ですが、デザイン系の方にActionscriptを教える際に 以下の本が好評でした おしえて!! Flash 8 ActionScript http://item.rakuten.co.jp/book/3979115/ 古い本ですので、Actionscript2.0でソースの書き方が古いですが 絵を多用して最後までわかりやすく説明されていました。 プログラムの概念理解にも良いようでした。 新書でもあるとは思いますが、見かけたら中を覗いてみてください。 (買うときは古本屋でも…)
お礼
参考書のご紹介、どうもありがとうございます。 書店に行った際にはチェックしたいと思います ヾ(@^▽^@)ノ
- suzuko
- ベストアンサー率38% (1112/2922)
まず、ヘルプやリファレンスなどFLASH自身のガイドを参考にしましょう。例えば、スクリプトを入力したら、わからない部分を反転し、リファレンスを表示させると、その部分が的確なら解説されます。(製作者独自の単語だったりすると駄目です) お書きのスクリプトで function onTextChange は、解説されますし、 var .text なども。 解説文章はかなり硬い文章なので、わけがわかりにくいでしょうが、本を参考にされると少しはわかるかも・・・自分は初めの頃は一番下の事例のみで理解しようとしていました。^^; ちなみに function onTextChange(e:Event){ ↑テキストが変わった時にe:Eventを行え。e:Eventの中身は以下の{}の中。 var kcal = value_txt.text; ↑kcalに摂取カロリーのテキストを代入。 var min = kcal / 2.7; ↑minはkcalを2.7で割ったものを代入。 result_txt.text = min; } ↑散歩のテキストにminを表示。 でしょうか?(あまり自信はありません) なかなか簡単なサイトというものはありませんので、2.0などの解説サイトを参考にされてもいいかも。 http://homepage3.nifty.com/ginga-b/index.html ↑ここは比較的わかりやすいサイトだと思います。 参考URLは本格的ですが、かえってわかりやすいかな?
お礼
ありがとうございます!! 大変参考になりました、本もこういう風にわかりやすく説明してくれたらいいのに、なんかいまいち分かりにくいんですよね。 なんか少しだけ暗号が文章に見えてきたという感じがします。 なるほどこういう「感覚」で見ていくんですね。 参考URLもすごく細かい手順で説明されていて勉強になりそうです。 がんばって精進いたします(*`ー´*) どうもありがとうございました。感謝感謝!
お礼
詳しい御回答、どうもありがとうございます! (^ー^)/ さらに理解が深まったように思います。 まだまだよく分からない感覚はたくさんありますが 数をこなしながら、理解を深めていくしかないですよね。 最後のイベントeに関する記述なんかチンプンカンプンです(汗) そのうちに「ああそういうことだったのか」となるように がんばります。 どうもありがとうございました。感謝感謝