• ベストアンサー

Flashのactionscriptについて(画像の時間指定切り替え)

はじめて質問します。 Javascriptのように、1ヶ月ごとに画像の切り替えをFlashでしたいと思っています。 もし可能であれば、シーンを12ヶ月分作って、月ごとに最後だけシーンを切り替えたいです。 そういうactionscriptはあるのでしょうか。。。 すみませんが、よろしくお願いいたします。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.2

「最後だけシーンを切り替える」 という部分が,Scriptのメイン部分になるため,非常に答えにくいです。 どういう風にされたいのかがわからないので,例として月によってgotoするフレームを変えるスクリプトを書きます。 基本はJavaScriptと全く変わりません。 使っている関数や構文も全く同じです。 ただ,Flashを動作させる部分がかわるだけです。 「Javascriptの条件文」 http://www.rsch.tuis.ac.jp/~mizutani/online/javascript/condition.html まずは,月の取得ですが,これはこの2行だけで良いです。 ------------------------------ // 新しい Date オブジェクトを作成する myDate = new Date(); //変数 tuki にDate オブジェクトの月+1 を取得 tuki = myDate.getMonth()+1; ----------------------------- getMonth()+1 にしていますが, 1月だと0,2月だと1… という具合になるので紛らわしくないようにこの段階で+1をしただけです。 単なる私の趣味です。 JavaScript と同じく変数だとわかりやすいように前に var を付けて ----------------------------- var myDate = new Date(); var tuki = myDate.getMonth()+1; ----------------------------- のようにしてもかまいません。 次にこの得られた tuki の値によって,if文で分岐させます。 1月だったら31フレームに,2月だったら41フレームに… というのをスクリプトにすると以下に様になります。 --------------------------- myDate = new Date(); tuki = myDate.getMonth()+1; if (tuki == 1) { gotoAndPlay (31); } else if (tuki == 2) { gotoAndPlay (41); } else if (tuki == 3) { gotoAndPlay (51); } else if (tuki == 4) { gotoAndPlay (61); } else if (tuki == 5) { gotoAndPlay (71); } else if (tuki == 6) { gotoAndPlay (81); } else if (tuki == 7) { gotoAndPlay (91); } else if (tuki == 8) { gotoAndPlay (101); } else if (tuki == 9) { gotoAndPlay (111); } else if (tuki == 10) { gotoAndPlay (121); } else if (tuki == 11) { gotoAndPlay (131); } else { gotoAndPlay (141); } ---------------------------- 上に書いたURLをもう一度見直してみるとわかりますが, 「Javascriptの条件文」 http://www.rsch.tuis.ac.jp/~mizutani/online/javascript/condition.html 同じですね。 gotoAndPlay (○○); とか言うFlash特有な部分が挟まっているだけです。 これを,タイムラインの月ごとに進みたいフレームに書けば, そのフレームに達したとき目的のフレームに自動的にジャンプします。 しかし,上のように規則正しい法則にしたがって, goto するフレームを変える場合は,if文の分岐も要りません。 上のスクリプトはよく見ると, tuki=1 のとき 31(フレーム) tuki=2 のとき 41(フレーム) tuki=3 のとき 51(フレーム)  …         … tuki=n のとき n×10+21(フレーム) となっているのがわかります。 if文だとたいていの分岐に対応できます。 でもif文だとダラダラ長くて,格好が悪いですし,PCの頭も余分に使ってしまいます。 ですから上のような場合,普通は, ----------------------------- myDate = new Date(); tuki=myDate.getMonth()+1; gotoAndPlay(tuki*10+21); ----------------------------- と書きます。 これの方がスッキリしていて良いですね。たった3行になります。 上記参考URLにはないですが,こういう方法は当然JavaScriptでも他の言語でも使います。 最後のシーンはいったいどうしたいのかによって, gotoAndPlay (○○); の部分が変わります。 loadMovie を使って他のムービーを読み込むとか, ○○.play(); で,インスタンス名○○のムービークリップをスタートさせるとか, 様々です。 とりあえずは if文を使う形で考えてみて,もし公式化できそうだったら, if文ではなく,短縮することも考えてみてください。 この月の値はローカルPCの時刻を取得しています。 PCの日付と時刻の調整で月を変えてもらうと,本当にスクリプトはうまく動作するのかが確認出来ます。 ===雑談========================= Flashのスクリプトは ActionScript と呼ばれています。 こう呼ばれるようになったのは,日本ではFlash5(2000年10月13日発売)からです。 それまでは正式にはそう呼ばれていなくて,単にアクションと呼ばれていました。 よく考えると旧世紀の話ですね。 アクションと呼ばれていた頃のスクリプトは,JavaScript とは全く似ていないもので,VBA とか VBScript に似た感じの言語でした。 例えば If は End If で閉じていました。 On も End On で閉じていました。 ところが,それまでとは全く違う,ActionScript という言語を,マクロメディアが JavaScript の標準規格である ECMAScript をベースに独自に作り,Flash5からその言語形式を採用したのです。 http://www.fumiononaka.com/TechNotes/Flash/FN0506003.html だから ActionScript は JavaScript の弟か子どものようなものです。 JavaScript をされている方は,スルスルと ActionScript が理解できると思います。 私は逆に ActionScript をすることによって JavaScript が少しわかるようになりました。 歴史的にも JavaScript の方が古く,使用人口でも JavaScript の方が多いので,考え方や応用の仕方も JavaScript から得る物は多いです。

delico10
質問者

お礼

詳しい説明ありがとうございます!!! 返事が遅くなり申し訳ございませんでした。 何とかうまくいきました…!!! 本当に本当にありがとうございました。

その他の回答 (1)

回答No.1

こんにちは。 作っていないので細かいことはわかりませんが、私がご質問のようなものを作ると想定して・・・。 1、月ごとの最後のシーンを12個別ファイルで作ります。 2、各月で共通している動きのファイルを作ります。 3、2で作ったファイルで一番最後に現在の月を読み込み その月に合った外部swfファイルを読み込む 大体こんな手順で作ることができると思います。 問題になるのは、現在の月なのですが、これは、何か関数があると思います(無責任^^) 後は、それをifがswich(スペル自信なし)で条件分岐してやれば、 できます。 簡単にですが,頑張って下さい。

delico10
質問者

お礼

ありがとうございました。 返事が遅くなり申し訳ございませんでした。 シーンで切り替えがちょっとうまく行かず、レイヤーで12か月分区切って作りました。。。 返答、本当にありがとうございました。

関連するQ&A

  • Flash ActionScriptで、画像に保存したい!

    Flashプレイヤーで再生中のFlashアプリで、 写真を取り込んだり、図形を書いたり、文字を配置したりするFlashアプリを作成することになったのですが、 最後に作成したイメージの保存を、ActionScriptで行いたいのですが、何か方法がないでしょうか? 開発ツールのFlashでイメージの保存する方法ではなく、 Flashプレイヤーで再生中のFlashアプリの機能として 保存ボタンのプログラム方法が知りたいのです。 画像のフォーマットは、JPEGでもGIFでもBitmapでも構いません。 バージョンはFlash8で、ActionScriptは2.0です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • flash画像の再生・ボタンによる切り替え

    初めて質問させていただきます。 flash初心者です。 CS5、ActionScript3.0で作成しております。 http://www.united-arrows.jp/ こちらのサイトのトップページにあるようなものを、flashで作成しようと考えております。 5枚の画像を順番に再生し、フェードインしながら切り替わり、また、5枚の画像に対応する5つのボタンのマウスオーバーに反応するようなものです。 上記サイトのように、表示していた画像を残しながらフェードインで切り替えとなると、重ね順の変更などが必要になってくるかと思われますが、初心者なものでActionScriptに関しての知識もほとんどなく、ネットや書籍で調べてはみたのですが全くわからず大変困っております。 どうか宜しくお願い致します。

    • ベストアンサー
    • Flash
  • Flash ActionScriptで画像の読み込み

    Flashでトランプゲームを作ろうと思っているのですが、カード一つ一つシンボルに入れると容量が大きくなるので、画像を読み込もうと思いました。 が、読み込み方法が良くわかりません。 ActionScriptならこういうのがあると思ってネットで色々調べてみたのですが、しっくりとしたサンプルがなかったのでここに書き込みました。 使っているソフトはAdobe Flash CS3 Professionalです。

    • ベストアンサー
    • Flash
  • FlashのActionScriptについて質問です。

    FlashのActionScriptについて質問です。 Flash CS4のAS2.0を使用 ActionScriptの書き方で (1)ボタンインスタンスに書く (2)対象のインスタンスのフレームに書く (3)ActionScript専用のフレームを作成しそこへ書く 参考書等を読んでいるとActionScriptを書くときに、上記3つの方法が あり混乱しています。 それぞれ、どのような違いがあるのでしょうか?また、どのように使い分けるのでしょうか? Flashに関しては、始めたばかりの超初心者です。どうぞ宜しくお願いします。

  • actionscript

    FLASHを作成してますが、actionscriptでつまずいています。 シーンが1~5まであるFLASHで、 添付の画像のようなものです。 シーン2が 左のメニュー一覧はムービークリップになっていて、 その中にボタンがある状態(入れ子?)です。 ボタンをクリックするとシーン1の先頭に飛ぶようにしたくて on (release) { this._parent._parent.gotoAndStop("シーン 1","1"); } と書きましたがうまくいきません。 詳しい方いましたら教えてください

    • ベストアンサー
    • Flash
  • ゼロからFlash,ActionScriptの勉強

    こんにちは、質問を読んでくださってありがとうございます。 これまで同様の質問をされた方のページはみさせてもらいました。私は全くのゼロからFlash,ActionScriptの勉強をしようと思っています。もともとフラッシュを使用したWebページなどに興味があったのですが、 http://www.sightseekerstudio.com/typingmania/contents/odyssey.html というサイトをみて「すげぇ!俺もこんなの作れるようになりたい!」と思ったのが恥ずかしいですが動機としては正直なところです・・・。みなさんは仕事に繋げるためになど立派な理由があるのにこんなんですみません。 したがって、ゼロから勉強するためにお勧めの書籍を教えてほしいです。ウェブページの方は以前の質問者さんの参考ページが良い感じでした。私の性格としましてはコツコツ端っこから塗りつぶしていくのがタイプ(取りこぼしが嫌い)なんで解説が多くステップ型の本が好きです。あとC言語とPerl,HTML,CSSについては簡単には理解しています。しかしオブジェクト指向言語は全くの初めてです。そしてActionScript3.0からでよいと思うのですがいかがでしょうか? Flash(今ならCS4です?)の使い方やJavaScriptについてもよい書籍があれば教えてください。大きな書店がないのですいません。 目標の難易度はわかりませんが第一目標としてはActionScriptを使ったゲームを作る。次にJavaScript等も勉強してWebページのっけるところまで持っていきたいです。デザイン能力やその他の知識についてはそのときがんばります! 春休みからド集中でやっていきたいと思っています。たくさん質問しましたがどれか一つでもアドバイスなどあればよろしくお願いします! 長々と読んでくださってありがとうございます。

  • 日時を表示させるFlashのサンプル ActionScript2.0用

    Flash MXを最近始めました。(^^; 恐らくActionScriptは2.0なので、皆さんから、ActionScript3.0から始めればと言われると思いますが、これしかないので・・・ 今日と昨日と明日の日付を表示させる簡単なFlashを作成しようとおもっているのですが、 中々うまくいきません。 あと2桁の乱数も表示させたいです。 できたとしてもFlashが動作するローカル環境の日時が間違っていたら、今日の日付もおかしいのでしょうか? 結局、ActionScriptはJavascriptということでしょうか?

  • FlashのActionScriptでjavascript?

    質問するカテゴリーがここであっているのかよくわかりませんが、よろしくお願いします。 Flashの短い動きがあった後、一部をクリックすると新しいウィンドウが開くようになっています。 今回、そのリンク先を変えてくれとの依頼がきました。 そのクリックする部分のActionScriptをみたところ、 on (release){ getUrl("javascript:OpenNewWindow(3)"); } となっていました。 これはジャバスクリプトを読んでいるということなのでしょうか? もしそうなら、そのジャバスクリプト自体にはどうすればたどりつけますか?

    • ベストアンサー
    • Flash
  • ActionScript3から過去のActionScript2に移りたいのです

    2ヶ月ぐらい前にFlash CS3で参考書を見ながらActionScript3を始めたのですがソースを見れば大体は理解できるようになりましたが参考書に出てきた所以外の部分だと自分の頭が悪く理解や応用ができずに現在は心が折れてしまいました。 ただ自分の目標としているオリジナルゲームは作りたいのでActionScript3よりも過去のActionScript2の方が簡単だった、という文章をネットで見かけたのと私の求めているようなソースがActionScript2の物が多いという理由で過去のActionScript2の方を覚えようと思いました。 そこで本題なのですが現在「FLASH ActionScriptバイブル」を買おうと思っています。 Wikipediaで調べた所 ActionScript1はFlash 5~Flash MX ActionScript2はFlash MX 2004~Flash 8 上記のようになっていたのです。 私はActionScript2を学びたいのですが「FLASH ActionScriptバイブル」は「Macromedia Flash 5日本語版を最大限に生かすスクリプト言語」と書いているのでActionScript1って事ですよね?。 これはActionScript2を学びたい者には買っても意味がないのでしょうか?(これ以外にもActionScript1の本を買ってもActionScript2を学ぶ私には無駄になりますでしょうか?)。 それとも買っても問題ないのでしょうか?。

    • ベストアンサー
    • Flash
  • ActionScriptリファレンス

    ActionScriptの良いリファレンスが見つかりません…。 私は、JavaScriptやPerlなどを学びましたが、 すべて、本を買わずに独学で行きました^^; (金をかけたくない主義なので。) 今、FlashのActionScriptに挑戦しているのですが、 ActionScriptを、簡潔に且つ詳細に書きとめている  リファレンスがなかなか見つかりません。 良いページを知っている方がいらっしゃったら、教えてほしいです。 お願いします。

    • ベストアンサー
    • Flash