- ベストアンサー
ActionScriptで日付によって画像を変更する方法
- ActionScriptを使用して指定の日付によって画像を変更する方法を教えてください。
- 作成したFLASHの中で、日付が12日以前の場合は2フレーム目の画像を表示し、13日以降の場合は3フレーム目の画像を表示させたいです。
- 現在、日付変更のスクリプトを記述したのですが、うまく動作していません。早めに回答いただけると助かります。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- シーンに関してふたつ質問があります。
はじめまして。 現在ActionScriptを勉強中なのですが、ここの掲示板を見てもわからない部分があった為質問させてください。 1、シーンの結合 一連の流れをわかりやすくするため、いくつかのシーンをわけて作業していました。 これらのシーンをひとつのフレームに繋げる事はできるのでしょうか? 例)「シーン1」の最終フレームの続きに「シーン2」、「シーン2」の最終フレームの続きに「シーン3」を繋げる。 いくつか試してみたのですが、多数のフレームを一度にコピペは出来ない上に、ひとつのフレームだけコピペしても1フレーム目から配置されてしまい最終フレームの後に持っていくのですべてやろうとすると手間がかかりすぎでした。 2、ActionScriptでのシーンの指定方法 ボタンで飛ばす方法の質問はあったので、それを見つつ試したのですができませんでした。 私がやろうとしている事は、ボタンが押されたら飛ばすのではなく、ActionScriptでイベント開催日からの残り日数を計算し、その残り日数に応じて指定したシーンに飛ばす。というものです。 同じタイムライン上の指定したフレームに飛ばす事はできたのですが、別のシーンに飛ばそうとすると止まってしまいます。 ボタンでないとシーンを指定して飛ばす事は出来ないのでしょうか? シーン1の最終フレームに以下のActionScriptを記述してあります。 ※main2などは、それぞれのシーンの1フレーム目にフレームラベルとして同一の物を書いてあります。 this.stop(); dtObj=new Date(); dd=dtObj.getDate(); eventDay=31; dayCount=eventDay-dd; if(dayCount>3){ gotoAndPlay( "シーン2".main2); } if(dayCount=3){ gotoAndPlay( "シーン3".main3); } if(dayCount=2){ gotoAndPlay( "シーン4".main4); } if(dayCount=1){ gotoAndPlay( "シーン5".main5); } よろしくお願いします。
- ベストアンサー
- Flash
- FLASHのActionScriptについて
すみません。どなたか教えてください。 風景の画像が時間が来たら、次の風景が移る様にしたいのです。 静止している様に見える"2"のフレームを2フレームにして、2フレーム目に gotoAndPlay("シーン 1", "02") を入れてループさせています。120秒後に"03"フレームに移動させるよう、隠しオブジェクトに以下のスクリプトを記入しました。 onClipEvent (load) { beforeTime = getTimer(); n = 0; } onClipEvent (enterFrame) { nowTime = getTimer(); n = n+nowTime-beforeTime; beforeTime = nowTime; if (n>120000) { gotoAndPlay("シーン 1", "03"); n = 0; } } しかし、初めのgotoが無視されたように、書き出してしまいます。ここを Stop() にするとずーととまったままです。何か方法はないのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- ActionScript3.0 gotoAndPlay(currentFrame-1)が遅いのは何故?
フレームを2つ用意し、2フレーム目に gotoAndPlay(currentFrame-1) と書くことで 1フレーム目をループさせる手法についてです。 ActionScript2.0では問題なく使えるのですが ActionScript3.0だと、1フレーム目が実行される速度が2.0の半分になってしまいました。 fpsを1にすると、1フレーム目に書いたtrace文が2秒に1回しか表示されません。 通常のフレーム移動はfps通りの速度が出ています。 gotoAndPlay(currentFrame-1) を gotoAndPlay(1) と書いても同じです。 これは3.0の仕様変更によるものなのでしょうか? 原因のわかる方おられましたら、ご教授お願いします。 WindowsXP(32ビット) FlashCS3
- ベストアンサー
- Flash
- actionscript3.0について教えてください。
actionscript3.0について教えてください。 Flash CS4で、マウスオーバーすると画像が表示するものを制作しました。 (全レイヤー、1フレーム目のみで制作していました) そして最近その以前制作したものの直前に別のムービーを入れることになり、 画像のように1フレーム目から4フレーム目まであけました。 そしてもともとあったフレームをすべて5フレーム目に移動しました。 すると、エラーが出るようになりました。 5フレーム目に移動するとエラーが出るようになってしまったので、 試しに2フレーム目、3フレーム目など試しましたが同じくエラーが出ました。 エラーの内容は TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at test_fla::MainTimeline/frame5() です。 下記のスクリプトを上から二つ目のレイヤーに記述しています。 一番上のレイヤーには、stop();と記述しています。 超初心者のため説明不十分かもしれませんが、宜しくお願いいたします。 /*ボタン1 */ nav1txt_mc.visible = false; nav1_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover); function onMouseover(e:MouseEvent):void{ nav1txt_mc.visible = true; nav1txt_mc.gotoAndPlay("nav1txt_mc"); } nav1_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay); function nondisplay(e:MouseEvent):void{ nav1txt_mc.visible = false; } /*ボタン2*/ nav2txt_mc.visible = false; nav2_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover2); function onMouseover2(e:MouseEvent):void{ nav2txt_mc.visible = true; nav2txt_mc.gotoAndPlay("nav2txt_mc"); } nav2_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay2); function nondisplay2(e:MouseEvent):void{ nav2txt_mc.visible = false; } /*ボタン3*/ nav3txt_mc.visible = false; nav3_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover3); function onMouseover3(e:MouseEvent):void{ nav3txt_mc.visible = true; nav3txt_mc.gotoAndPlay("nav3txt_mc"); } nav3_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay3); function nondisplay3(e:MouseEvent):void{ nav3txt_mc.visible = false; } /*ボタン4*/ nav4txt_mc.visible = false; nav4_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover4); function onMouseover4(e:MouseEvent):void{ nav4txt_mc.visible = true; nav4txt_mc.gotoAndPlay("nav4txt_mc"); } nav4_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay4); function nondisplay4(e:MouseEvent):void{ nav4txt_mc.visible = false; } 宜しくお願いいたします。
- ベストアンサー
- Flash
- FLASH での基本的なアクションについて教えてください
ご教授お願いします。 Flash CS3を使用しております。 1フレーム目で停止し、そこで表示されているボタン(b1というインスタンス名)をクリックすると2フレーム以降が再生されるファイルを 作成しようとしていますが、うまくアクションさせることができません。ボタンはちゃんと機能していると思います。 現在、私が1フレーム目に入力しているアクションは下記のとおりです。 this.stop() function gotoAndPlay(2); b1.addEventListener(MouseEvent.CLICK,gotoAndPlay); どのあたりが不適切なのでしょうか? 以前にFlash5を使用したことがあり、その際はボタンへのアクションも選択するだけで簡単にできたのですが、CS3はやはり高機能だけにやや難解です。 詳しい方には、あまりに基本的な質問かもしれませんが 格闘すること数時間、先に進まず困っております。 どなたかご教授いただけますと、大変ありがたいのですが・・・。
- 締切済み
- デザイナー・クリエイティブ職
- suzukaのスクリプトで
suzukaでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。 その1.フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいので20フレーム目に以下のスクリプトを入れたのですが、どちらも使えませんでした。具体的な解決策はありますでしょうか。 ●[parse error]とエラーが出る this.stop(); on(keyPress ("a")){ _root.gotoAndPlay(21); } ●キーを押しても何も起こらない this.stop(); if(Key.isDown(Key.RIGHT)){ _root.gotoAndPlay(21); } else if(Key.isDown(Key.LEFT)){ _root.gotoAndPlay(31); } その2.フレームアクションの10フレーム目に this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); }; とボタンのスクリプトを入れると、 どこのフレームまで移動しようが 同じボタンへの命令で上書きするまで このボタンへの効果が持続されてしまうのですが、 押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?
- ベストアンサー
- Flash
- FLASHで日数カウントダウンの後、本日開催の画像を出したい。
FLASH上で10月4日開催のイベントに向けて日数カウントダウンをし、当日になったときに「本日開催」の画像を出したいです。 //カウントダウン// this.stop(); dtObj=new Date(); mm=dtObj.getMonth()+1; dd=dtObj.getDate(); month7=31; month8=31; month9=30; eventDay=4; if(mm==7){ totalDay=eventDay+month7+month8+month9; } else if(mm==8){ totalDay=eventDay+month8+month9; } else if(mm==9){ totalDay=eventDay+month9; } else{ totalDay=eventDay; } _root.dayCount=totalDay-dd; //カウントが0になったら// if(_root.dayCount==0){ _root.gotoAndStop(_currentframe+1); } これなのですが、//カウントが0になったら//の部分がうまく動作しません。2フレーム目にテキストなどを直接入力すると上手く動作するのですが、画像を挿入すると動作しません。どなたかお詳しい方ご存知でしたらアドバイスいただけますでしょうか。よろしくお願いいたします。
- ベストアンサー
- Flash
- FLASH CS5でnow loadingでランダム再生を読み込みたい
FLASH CS5でnow loadingでランダム再生を読み込みたい FLASH CS5で10枚の画像(表示されいるのは1枚で、左右に隣の画像が少し見える感じ)があり、その下に右、左のボタンがありを押していくと、画像が切り替わっていくアニメなのですが 開始のフレームをアクセスする度に変わるランダムにしたいです。(開始の画像が入るたびに変わる) そのためにnow loadingですべてを読み込ませてからスタートさせないとなのですが、 1フレーム目に以下のタグを入れました。 このやり方だと、エラーがでます。 //再生停止 stop(); //イベントリスナーを登録 //(毎フレーム時間で実行,実行関数 goRnandom) this.addEventListener(Event.ENTER_FRAME,goRnandom); //関数 goRnandom の定義 function goRnandom(evt:Event):void { //変数 per にロードされたパーセントを取得 var per:Number = this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal * 100; // //もしロードパーセンテージが 100 に達すれば if (per >= 100) { //登録したイベントリスナーを削除 this.removeEventListener(Event.ENTER_FRAME, goRnandom); //変数 rnd_num に 0以上1未満 のランダムな数を代入 var rnd_num:Number = Math.random(); if (rnd_num < 10 / 100) { gotoAndPlay(2); } else if (rnd_num < 10/100) { gotoAndPlay(8); } else if (rnd_num < 10/100) { gotoAndPlay(14); } else if (rnd_num < 10/100) { gotoAndPlay(20); } else if (rnd_num < 10/100) { gotoAndPlay(26); } else if (rnd_num < 10/100) { gotoAndPlay(32); } else if (rnd_num < 10/100) { gotoAndPlay(38); } else if (rnd_num < 10/100) { gotoAndPlay(44); } else if (rnd_num < 10/100) { gotoAndPlay(50); } else { gotoAndPlay(57); } } } どこか間違っている箇所はあるのでしょうか? 教えてください。
- ベストアンサー
- Flash
- 指定したフレームから再生できない(フラッシュ)
あるフレームになって時点で指定したフレームに飛び、そこからフレームを再生させようとおもっています。 指定したフレームへ飛ぶ事ができるのですがそこからストップしてしまいます。 どうか打開策を教えて頂けないでしょうか? お願します。 あるクリプトに下記の内容のスクリプトが埋め込まれていてそこで指定したフレームに飛ぶようにしています。 onClipEvent(enterFrame){ _x -= 5; if(_x <= 10){ _root.gotoAndPlay("bbb",11); } if(_x <= -600){ _x = 600; } }
- 締切済み
- グラフィックソフト
- gotoAndPlayされないです
はじめてFlashを作ります。 "ATTACK1"と"ATTACK2"のフレームを0.2秒の間隔で10回交互に表示したあと、 "ATTACK3"と"ATTACK4"のフレームをenterが押されるまで交互に表示する というプログラムを作りたいのですが、 "ATTACK1"と"ATTACK2"のフレームを交互にずっと表示されるだけで、 ATTACK3へ移動しません。 "ATTACK1"というラベルのフレームに以下のように書きました。 ActionScript2.0でやっています。 どこが悪いのか教えてください。お願いします。 ATTACK1フレームのActionscript var timeCount = true; var endTime = getTimer()+0.2*1000; stop(); onEnterFrame = function() { if( timeCount ){ time = Math.ceil((endTime-getTimer())/1000); if( time <= 0 ){ timeCount = false; if( count >= 10 ){ gotoAndPlay("ATTACK3"); count=0; delete this.onEnterFrame(); } gotoAndPlay("ATTACK2"); count=count+1; delete this.onEnterFrame(); } } }; ATTACK2フレームのAcctionscript var timeCount = true; var endTime = getTimer()+0.2*1000; stop(); onEnterFrame = function() { if( timeCount ){ time = Math.ceil((endTime-getTimer())/1000); if( time <= 0 ){ timeCount = false; gotoAndPlay("ATTACK1"); delete this.onEnterFrame(); } } };
- ベストアンサー
- Flash
お礼
とても親切な上、素早い回答ありがとうございます。 まさに、読み込む前に飛ばしていたのが原因だったみたいで、きちんと思った通りに動くようになりました。 FLASHがそういう性質だったとは知りませんでした。 お話もすべて参考になる物ばかりですごく為になりました。フレームラベル等もぜひ使ってみたいと思います。 あと、ローディング画面の%表示はできたので、今後プログレスバーにもチャレンジしてみようと思います。 本当に今回は助かりました。どうもありがとうございました!