• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FlashActionScriptバイブルを読破された方に質問です!)

FlashActionScriptのスクリプトの使い方と意味の解釈について質問

このQ&Aのポイント
  • FlashActionScriptのスクリプトの使い方と意味の解釈について質問です。
  • 具体的には、P.258のサンプルclipEvent05.flaのスクリプトの5行目から9行目がわからず困っています。
  • 特に、getBoundsメソッドの引数のthisや、xMinとxMaxの-=の意味が理解できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hokuto_ds
  • ベストアンサー率45% (106/233)
回答No.2

お礼ありがとうございます、shevyさん。 回答がなんとか「助け船」になれたようでなによりです。壁がこせるとうれしいですよね!(私も現在、ひとつ壁にあたっております‥) しかし >>hokuto_dsさんの書き方だと同様にType Objectとしか表示されませんでした これは失礼いたしました~;実は「なんかあぶないなあ、自分で動かしてためしてみよう‥」とか思いながらそのまま甘く見て回答してしまいました。(実際、よくあるんですよ、動くぜ!とか思いながらまぬけをして動かないのって。なんて威張って言えませんが) フォローありがとうございました! 日々勉強‥‥! ActionScriptバイブルはほんとにいいですよね。「プログラム」をすでに理解している人には「かえってわかりにくい」とか言われますが、私はあの本がなければスクリプトなんて考えもしなかったと思います。ほかにも何冊か見ましたが、やはりお役立ち度はこの本にとどめをさすかな(そんなにたくさん読んでいませんが;)、と思います。 なので、せっかく言っていただいたのですが「おすすめ」はこれ以上のものはないかも。私自身はこの本を手元において、ことあるごとにリファレンスを引きながら自分で思いついたものをつくっては、試行錯誤している状態です。 ActionScriptバイブルに書いてあるサンプルも、ほとんど自分の手でつくりなおしたりしてみました。たとえばデジタル時計、アナログ時計を自分であたらめてつくったり。サンプルのスクリプトは見ないようにして、後ろのリファレンスだけをたよりにしながら自分で一からスクリプトを書いていきます。にっちもさっちもいかなくなったらサンプルを「ちらっと」見ますが。これが、当時はいちばん自分にとって勉強になったやり方でした。理解しているつもりでも、いざ自分で書こうとするとなかなか書けなかったもので‥‥ あとは私が「気になっている本」を、とりあえず参考サイトに。「カスタマーレビュー」の方で、読者の意見も聞けるのがありがたい(じつは、バイブルもここでレビューの評判が良かったので買ったのです)。お金があったら全部ほしいですが‥‥最新バージョンのMXの本もではじめましたので、心をひかれつつ様子を見ている状態です。 後ろの参考サイトは、お役に立つかもしれないリンク、です。メーリングリストのアドレスなどもあります。ご参考までに、ということで。 なんだかちょっと私もやる気でました(^^)。なんとか今つくってるスクリプトを仕上げようと思います。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4881661973/fsite-22/249-1257828-6709953,http://fpower.org/link.htm
shevy
質問者

お礼

有難う御座います。 お世話になっております。 そうですか、やはりバイブルは最強ですか。 たしかに私もそう思います。 でも、もし、私よりも全く素人で、Flashすら知らない人には、いきなりこの本よりは、先に、おしえてFlash5を一通り読んでからがいいだろうと思っています。 まずは、Flashの仕組みを知り、そして、ActionScriptに挑戦する。私が歩んできた道は、そんな感じです。といってもまだバイブル読み始めて一ヶ月もたっていません。うーん、先にラーニングに力を入れすぎたかもしれません。何度も書いていますが、ラーニングは良本だと思うのですが、やはりオブジェクト指向について全く書かれていないのは、問題だと思いました。オブジェクト指向の前に構造化プログラミングに慣れ親しんでいると、頭の切り替えが大変なこと大変なこと。functionって何?って感じでしたから。でも、ラーニングは悪くないですよ!ってそればっかりいってますが・・。 hokutoさんの勉強方法なにやらよさげですね。コーディングを自分で最初からして、わからないときだけ少しだけ見てヒントを得る。これはよさそうです。使わさせて頂きます。とりあえず、あと本が半分以上残っているので、ガシガシと突き進みます。 hokutoさんのスクリプト、完成したら、教えていただけませんか。是非ホームページに行って拝見したいです。 私もやる気でましたよ。 また近いうちにこの板でまた当方、質問するかもしれません。そのときはhokuto_dsさんのご回答、ご鞭撻、また宜しく御願い致します。

その他の回答 (1)

  • hokuto_ds
  • ベストアンサー率45% (106/233)
回答No.1

>>getBoundsメソッドのあとの引数のthisとは一体何なのでしょう?? これは本の619ページのgetBounds()の欄をしっかりお読みください。thisについても(つまり、このメソッドの引数について)書いてあります。引数をとることによって、「どの座標系を使うか」指定できるわけです。 つまりthis.getBounds(this) では、この「this」のローカル座標を使って「xMin,Xmax,yMin,yMax」の四つの値を取得するのです。 >>これで出力に表示されるのは「Type Object」と出るだけでした。 これは、secret=this.getBounds(); の引数を指定していませんよ。 この実験をするなら secret1=this.getBounds(); secret2=this.getBounds(_root); secret3=this.getBounds(this); secret4=this.getBounds(なにか別の、_root上においたムービークリップ); の四つのメソッドを書き、 trace("1:"+secret1+",_root:"+secret2+",this:"+secret3+",別のMCの名前:"+secret4); でトレースしてみれば、それぞれの違いがよくわかります。 ちなみに「Type Object」ってのは「secretってのはオブジェクトのひとつですよー」と言っているだけのことで、数値を返してきたわけではないです。つまり、この時点では数値の返り値が生じていない‥ >>なぜ、xMinとxMaxは共に-=しているのでしょうか これについては、図を描いて自分で考えることをおすすめします。文字だけで書いてもわかっていただけるかどうか; とりあえずご説明しますと、この this.getBounds(this);で「このMC(ムービークリップ)のローカル座標を取得」してますよね? ローカル座標というのは「そのMCの中心点をゼロとした」座標です。たとえば横(x)の長さが10のMCを想定します。この中心点をずらしていないと仮定すると、this.getBounds(this);で取得する値の中の「xMin」は「-5」、「xMax」は「5」になりますよね。 これを本文のメソッドに実数として当てはめ、図に描いてみてください。なぜオフセットするのか、中心点をずらしたものも紙に描いて、それがステージ左端にさしかかったとき、右端にさしかかったときの状態をくらべてみれば理解できると思います。 私もスクリプトもフラッシュも超初心者でこの本につっこんだので、いろいろ大変なのはわかります(かつてを思い出します;)。わからなくなったら「紙に書いて整理する」が私のたどりついた解決策でした。 スクリプトを画面でいじるより、図で整理したほうが分かりやすいこともありますよ。がんばってくださいね。 >>また、本書についての質問掲示板等 は、知らないです。あるなら私も知りたいですが‥‥

shevy
質問者

お礼

こんにちは。回答ありがとうございます。 お世話になっております。 すべて意味を解しました! 619ページと620ページを熟読することで、 謎はすべてとけました。 そして、私が、実験と称して試してみたtraceもうまいこと返り値をゲットすることができました。 ただ、せっかく回答をしてくださったのですが、 hokuto_dsさんの書き方だと同様にType Objectとしか表示されませんでした。そこで頭をひねって、ページ619と620をよく読んでみると、少し書き加えればいいのではないか?と気付き、以下のように書いてみました。 onClipEvent (load) { secret1 = this.getBounds(this); secret2 = this.getBounds(_root); trace ("ローカル座標:Xの最小値:"+secret1.xMin+",Yの最小値"+secret1.yMin +",Xの最大値:"+secret1.xMax+",Yの最大値"+secret1.yMax); trace ("グローバル座標:Xの最小値:"+secret2.xMin+",Yの最小値"+secret2.yMin +",Xの最大値:"+secret2.xMax+",Yの最大値"+secret2.yMax); } つまり、変数名のあとにプロパティ指定がなかったことに気付いて書き足しただけなのです。これでバッチシうまいこといきました。有難う御座います! また、なぜ「-=」かとい質問もしましたが、よくわかりました。書いてみると分かるものですね。ようするにローカルでマイナスの値になっているX座標の値はグローバルのxMinの値からひいてやると結果としてプラスになる。だから、結果としてMCの中心点からMCの端までの距離がオフセットになって、画面上にきちんと表示される。 またその逆で中心点がオブジェクトからはるか遠くに位置していたとしても、今度はそのオブジェクトの端っこから、中心点までの距離が余計だから、グローバルのxMinから、その余計分を引いてやればオフセットになる。。。 うーん、自分で自分を納得させるために長々と書いてしまいました。hokuto_dsさんは分かっておられるのに、しつこいですよね。ちょっと嬉しかったもので。 実は、私は、アクションスクリプトに取り掛かったのは、 ラーニングアクションスクリプトという本でした。これも非常に分かりやすいのですが、実は、この本はオブジェクト指向を採用していないんです。ですので、こちらのバイブルにとりかかってみたとき、少し、とっつきにくい感がありました。ですが、読んでいくうちに、バイブルのほうが分かりやすいと気付きました。バイブルをマスターしてから、他の本を読むというのが、どうやら良さそうですよね。 hokuto_dsさんのお薦めの書籍があれば、何か教えていただけないでしょうか。基礎力を活かせるもう少しサンプルが多いものがいいかもしれません。

関連するQ&A