- ベストアンサー
adobe frash CS5.5について
flashソフトをMXのころから使っていますがほとんど 初心者と同じです。 ボタンの操作ができません。 ボタンを作ることは出来ます。 でも、使うことができません。 例えば、大小2つの同じ写真を用意します。 小はボタンシンボルに変換します。 大はそのままです。 この小のボタンを、ステージ上でクリックしたら大の写真が出てくるようにしたい のです。いろんなHPでよく使われている手段です。 アクションスクリプトにどのように書き込めばよいのでしょうか。 cs5にはコードスニペットというのができて これを使えば簡単かと思ったのですができません。 もしこれの利用が出来るならどこをどのようにしたらよいのでしょうか。 どなたか教えて下さい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> アクションスクリプトにどのように書き込めばよいのでしょうか。 > cs5にはコードスニペットというのができて > これを使えば簡単かと思ったのですができません。 具体的な「何をどうするのか」という方針(ストーリー)がなければコードも何もないと思います。 (人間が考えた方針(ストーリー)をソフト上で実行させるのがコードです。) > 小のボタンを、ステージ上でクリックしたら大の写真が出てくるようにしたい この「大の写真を出す方法」など, 細かなバリエーションも合わせると無数にあります。 例えば 「大の写真をステージ外のとんでもない場所(x=10000000とか)に配置しておいて,ボタンクリックでステージ表示内に移動させる。」 という方針もありますし 「大の写真を透明にしておいて,ボタンクリックで不透明にする。」 という方針もありますし 「大の写真を非表示(visible=false)にしておいて,ボタンクリックで表示(visible=true)する。」 という方針もありますし 「ボタンクリックで大の写真のシンボルをライブラリからステージ上に出す。」 という方針もありますし 「ボタンクリックで大の写真のJPEGファイルを外部からロードして表示する。」 という方針もありますし … etc. etc. … ただ, 大の写真をライブラリから呼び出したり, 大の写真のJPEGファイルを外部からロードする場合, 大の写真を出したは良いけど,深度(表示順序の上下関係)はどうするの? とか 大の写真を出したは良いけど,引っ込めるのはどうするの? などという問題も発生する可能性も出てきます。 ですから "私は勝手に" , 「大の写真を非表示(visible=false)にしておいて,ボタンクリックで表示(visible=true)する。」 という方針で行くのが良いのではないかと思います(あくまでも私が思うだけ)。 以下では, その「私の勝手な方針(ストーリー)」を実現する方法を書きます。 ActionScript 3.0 設定 のドキュメントを作成してあるものとします。 そのドキュメントのステージ上の,小の写真ボタンを選択した状態で「プロパティ」パネルを表示させ, そのボタンにインスタンス名を付けます。 ここでは「small_btn」というインスタンス名を付けることにします。 またステージ上の大の写真を選択してムービークリップに変換し, このムービークリップにもインスタンス名を付けます。 ここでは「big_mc」というインスタンス名を付けることにします。 その「small_btn」や「big_mc」があるレイヤーとは別に ActionScript を書くためのレイヤーを作成し そのレイヤーの「small_btn」や「big_mc」が存在するフレーム上のキーフレームに 次のようなスクリプトを書きます。 //----------------------------------------------- //「big_mc」を非表示にする big_mc.visible=false; //「small_btn」をクリックしたとき 関数appearBigMC を実行 small_btn.addEventListener(MouseEvent.CLICK,appearBigMC); //関数appearBigMC の定義 function appearBigMC(evt:MouseEvent):void { //「big_mc」を表示する big_mc.visible=true; } //----------------------------------------------- これで,ムービープレビュー や パブリッシュ してもらうと結果が見えると思います。 人間側に何の方針もなく,PCに向かって「方針も考えろ」というのは酷ですよね。 また逆に, 人間側には方針があるのに,PCが勝手に考えた方針で進んで行くのも困りものですよね。 どっちにしても コードスニペットですべての事が運ばれていくのはおかしい(無理または困る)と思います。
補足
BlurFiltanさん 丁寧なお答えありがとうございます。感激 けれど 残念、能力の限界でしょうか。BlurFiltanさんのお教えの通り ボタンやムービークリップにインスタンス名をつけて、さて、Scriptを書き込もうと 思ったらそれが出来ません。書き込む場所にカーソルが行かないのです。 でも、webやswfにはリンク出来るのに何故だろうと悔しいです。 BlurFiltanさんの「ボタンクリックで大の写真のシンボルをライブラリからステージ上に出す。」 これを是非やってみたいです。 これはコードスニペットにあるんだけど出来ません。 こんな風に書いてあります。↓ ***************************** /* クリックしてライブラリからイメージをロード シンボルインスタンスをクリックすると、ライブラリから指定したイメージが表示されます。 ライブラリからイメージをロードするには、そのイメージの「ActionScript 用に書き出し」プロパティがオンになっていて、有効なクラス名が設定されている状態でライブラリ内に格納されている必要があります。 手順 : 1. ライブラリ内の任意のビットマップを右クリックして、「プロパティ…」を選択します。 2. 「詳細」ボタンをクリックして、「ビットマッププロパティ」ダイアログを開きます。 3. 「ActionScript 用に書き出し」オプションを有効にします。 4. 「クラス」テキストフィールドに「MyImage」と入力します。 5. 「OK」を 2 回クリックします。 */ instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToLoadImageFromLibrary); function fl_ClickToLoadImageFromLibrary(event:MouseEvent):void { //ライブラリから別のイメージを追加する場合は、 //上記手順 4 の「クラス」フィールドと以下のコードに、別の名前を入力します。 var libImage:MyImage = new MyImage(); var holder:Bitmap = new Bitmap(libImage); addChild(holder); } *************************** ありがとうございました。私の能力の限界なのでしょう。 でもあきらめないで模索を続けます。m(_ _)m