• ベストアンサー

flash lite の質問です。flash lite1.1で制作して

flash lite の質問です。flash lite1.1で制作しています。 on(keyPress"5"){ mc._x += 10; } こんな感じで、減速しながらスムーズに移動をさせたいです。 _x += (目標の縮尺比率 - _x) / 縮尺のスピード;を使っていろいろチャレンジしているのですが、解決できないのでどなたか教えていただけないでしょうか。 よろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数4

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

Flash Lite 1.x がそもそも厄介ですが その他色々と厄介事を含むご質問ですね。。。 >on(keyPress"5"){ > mc._x += 10; >} >こんな感じで、減速しながらスムーズに移動をさせたいです。 > >_x += (目標の縮尺比率 - _x) / 縮尺のスピード; >を使っていろいろチャレンジしているのですが 前半は「座標移動」について 後半は「拡大縮小」について書かれているように見えます。 何をどう回答すべき? よくわからないので「x座標の移動」のみについての シンプルな作成例を書きます。 Flash Lite 1.x では onClipEvent (enterFrame){} や MovieClip.onEnterFrame = function(){}; が使えません。 これらと同じ働きをするような仕組みを自作しなければならないわけですが これには ムービークリップのグルグル ループ再生を使います。 新規ドキュメント を作成し ステージ上に「ボタン」と「ムービークリップ」を1つずつ作ります。 ムービークリップはステージ中央辺りが良いです。 またムービークリップには「mc」というインスタンス名を付けるとします。  メインタイムライン   ├ムービークリップ:インスタンス名「mc」   └ボタン そのレイヤーとは別に新しいレイヤーを作成し ActionScript を書く専用レイヤーということに決めます。 その ActionScript用 レイヤー の フレーム1 には 次のようなスクリプトを書きます。 ----------------------- //変数 spd にスピード(変化率)を設定 spd = 1/5; //変数 stage_w に ステージ の横幅を設定 stage_w = 240; //目標座標に mc の初期 x座標 を代入 goal_x = mc:_x; ------------------------- ボタンには次のようなスクリプトを書きます。 ----------------------- on (keyPress "5") { //変数 goal_x に 10 を加算 goal_x += 10; //goal_x の値が stage_w より大きくなれば if (goal_x > stage_w) { //goal_x の値を stage_w に固定 goal_x = stage_w; } } on (keyPress "4") { goal_x -= 10; //goal_x の値が 0 未満になれば if (goal_x < 0) { //goal_x の値を 0 に固定 goal_x = 0; } } ----------------------- ↑ボタンによって ムービークリップの座標を変えるのではなく目標座標を変えているのです。 次に ムービークリップ「mc」内タイムラインの編集に入ります。 「mc」内を2フレームにします。 「mc」内に ActionScript を書くレイヤーを挿入し フレーム1 も 2 も空白キーフレームにします。 その フレーム1 には次のように書きます。 ------------------------------ //x座標を目標座標にspdの割合で近づける _x += (/:goal_x - _x) * /:spd; ------------------------------ 「/:」 の 「/」は割り算ではなく「_root」を意味します。 「:」はその階層の 「変数( or プロパティ)」 です。 フレーム2 には次のように書きます。 ----------------- //フレーム1へ戻って再生 gotoAndPlay(1); ----------------- これでムービークリップ内のループ再生によって ムービークリップが目標座標に近付くものができます。  

kabohei
質問者

お礼

わわわ!丁寧にありがとうございます!涙 すごく感謝です!早速挑戦させていただきます!嬉

関連するQ&A

  • FLASHでのタブキー移動について

    現在、携帯用FLASHを作製しています。 FLASH MX2004で制作、書き出しはFLASH Lite1.0で行っています。 仕様書に「カーソル移動をさせるとき、携帯での↓はPCでのTabキー、↑はShift+Tabキー」であるとの記述があったのですが、 on (release, keyPress "<Tab>") { gotoAndPlay("***"); } と記述してみましたが、携帯では指定箇所へ移動できませんでした。 また、アクションスクリプト>グローバル関数>ムービークリップ制御>on で keyPressのShift+Tabに該当する記述を探しましたが、見つかりませんでした。 携帯の↓↑ボタンに該当する記述はどのようにすればよいのでしょうか。 ご存じの方、教えて頂けると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash lite 1.1 で2つのリンク先

    Flash lite 1.1 で只今製作中ですが、1つのswfに2つリンクを設定(ボタンシンボルを2つ置いて。)して、携帯で確認すると、2つ飛び先があるはずが、2つとも同じリンク先へ行ってしまいます。 PC上のローカルでクリックしてみたらちゃんとそれぞれに飛ぶのですが、テストサイトへUPして携帯でチェックすると、1つになってしまいます。上下にボタンを置いているのですが上に設定したほうのURLに下もなってしまいます。 それぞれのスクリプトは以下のようにボタンシンボルに書きました。 1つ目 on (press, keyPress "<Enter>") { getURL("http://○○"); } 2つ目 on (press, keyPress "<Enter>") { getURL("http://△△"); } 自分で調べてもどうしても解からず困っています。 どうかお知恵をお貸しください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash lite 1.1での質問です。

    Flash lite 1.1での質問です。 最近Flashをはじめたばかりの初心者です。 とても初歩的な質問かもしれませんが、どなたかご教授頂けると助かります。 <質問内容> メインのswfファイルのルートに配置されているmcというムービークリップを、loadMovie関数で外部swfファイルに置き換えたあと、外部swf内に定義されている変数が参照できません。 (外部のswfには画像データも含まれているので、loadvariables関数は使えません) 【構成】 ・main.swf(メインのswfファイル)   ├btn(main.swfのルートに配置されているボタン)   └mc(main.swfのルートに配置されているムービークリップ) ・gaibu.swf(loadMovieで読み込む外部のswfファイル) 【gaibu.swfのルートタイムラインのActionScript】 msg = "this is gaibu.swf!"; 【やりたいこと】 メインのswfでのボタンアクションで、gaibu.swfをロードし、「action」というルートタイムライン上のラベルに移動します。 on(press) { loadMovie("gaibu.swf","mc"); gotoAndStop("action"); } 「action」に移動した後、ボタンアクションにてloadMovieで読み込んだgaibu.swf内の変数msgを出力したいのですが、何も表示されません。 on(press) { trace(mc.msg); } loadMovie関数を使って外部のswfを読み込むと、(gaibu.swfは色を変えてあるので)読み込みは出来ていると思うのですが、そのswf内で定義されている変数が参照できません。loadMovie関数で読み込んだswf内で定義されている変数は消えてしまうのでしょうか? 分かりにくい説明ですみませんが、宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASH Lite1.1 背景の表示エラーについて

    携帯端末用Flash待受を制作しております。 依頼元に納品しましたところ背景が真っ赤になって表示されるという指摘を受けました。私の端末(au W44S)上では問題なく動作しているのですが環境によってこういったことは起こりうるのでしょうか。または使用メモリの問題なのでしょうか? 制作した作品は大きめな背景MC(850x640px)を動かしながらテキストをランダム表示させる内容です。環境はFLASH MX 2004、バージョンはLite1.1です。 分かる方いらっしゃいましたら是非よろしくお願いします。

    • ベストアンサー
    • Flash
  • flashで質問したいのですが。

    以前にも教えていただいたのですが、 http://okwave.jp/qa/q6531277.html 写真を左から右にスクロールすることはできたのですが、もうひとつしたいことがありまして質問させてもらいます。 以前は一つのシンボルにasを //このMCが表示された時に実行 onClipEvent (load) { //最初に動く速さを設定 speed = 300; //減速度合いを設定 down_speed = 5; } //毎フレーム時間で実行 onClipEvent (enterFrame) { //speed の値が 0 より大きい場合 if (speed > 10) { //speed の値をdown_speedだけ減算 speed -= down_speed; //speed の値が 0 以下になれば } else { //speed の値を 0 で固定 speed = 10; } // //このMCのx座標をspeedだけ右に移動 this._x += speed; // //もしこのMCのx座標が 0 より大きくなれば if (this._x > 0) { //このMCの横幅の半分だけ左に移動 this._x -= this._width / 2; } } と入力いたしました。 上記のように左から右にスクロールさせるのと同時に右から左ににスクロールさせる方法が知りたいのです。どうかよろしくお願いいたしします。 イメージは下記のような感じで上(左→右)下(右→左)を最初早くスクロールしてだんだんゆっくりスクロールしていくといったアニメーションにすることが理想です。 バージョンはFlashCS4 でas2.0で作成します。

  • 携帯Lite1.1用のプログラム

    こんにちは。 現在、携帯用のプログラムをテスト中なのですが、 キー5を押すとステージにあるムービークリップ(myobj_mc)を 8ドット単位に右に3個複製するというテストです。 ※myobj_mcは、ボタンMCです。 ※複製名は、clip0, clip1, clip2 ボタンインスタンスに下記のasを記述。 on ( keyPress "5" ) { for ( i = 0; i < 3; i++ ) { newName = "clip" add i; duplicateMovieClip("myobj_mc", newName, i ); xpos = i * 8; setProperty( newName, _x, xpos ); } } 動作環境 XP Flash8pro Lite1.1 以上のプログラムなのですが、エラーが出てしまいます。 Ctr+Enter時でエラー。 警告 :このムービーは Flash Lite 1.1 Player でサポートされていない機能を使用しています シーン = Scene 1, レイヤー = 玉くん, フレーム = 1 :Flash MX ボタンインスタンス名 シーン = Scene 1, レイヤー = 玉くん, フレーム = 40 :Flash MX ボタンインスタンス名 実行後のエラーです。 【次のコンテンツに問題があります : 5 ~ SWF データ内の ActionScript が無効です。】 どこか間違いがあるかご教授お願い致します。

  • Flash lite 1.1 夜空に星が瞬く待受

    Flash lite 1.1 夜空に星が瞬く待受 Flash lite 1.1で、指定範囲内を夜空に星が瞬く待受画面を作成したいと思っています。 ・ステージサイズは『240×320』 ・真っ暗な背景に、星が無数に配置されている。 ・大きさはそれぞれまちまちである。 ・星を配置する際も、規則性があってはならない。 ・それぞれの星は、無規則的に瞬く。 このようなものを考えております。 for文を使用するのかと思いチャレンジしているのですが、 スクリプトの記述方法が違うようで未だ解決できておりません…。 どなたかお力添え頂けますと大変嬉しいです。 宜しくお願い致します。

  • FLASH LITE1.1のテキスト入力について

    FLASH LITE1.1で、テキスト入力フィールドからユーザに数字を入力してもらい、その数字をもとにタイムライン上の適切なラベルに跳びたいのですがうまくいきません。 具体的には、フレームに次のASを書き、 fscommand2("SetInputTextType","nb","Numeric"); stop(); ボタンに、次のASを書いたのですが、 on(keyPress"*"){gotoAndPlay("eval("nb")");} うまくいきません。 クイズがタイムライン上に順に20問用意されており、それぞれのクイズの最初のフレームに、順に1~20とラベルされており、ユーザーが1~20のどれかを入力すれば、そのラベルに跳ぶようなイメージです。 ご教授いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash Lite 1.1での簡易パスワード認証の実現

    簡易パスワード認証に挑戦しています。 ところがある問題が… まずテキストボックスを作り、変数をpassと設定しました。 「認証」ボタンに以下のスクリプトを記述しました。 on(release, keyPress "1") { keyword = "pass"; if (pass == PASSWORD) { this.gotoAndStop("OK"); }else{ this.gotoAndStop("NG"); } } で、ここまでは良かったのですが、なんとFlash Lite1.1では this.gotoAndStopが対応していないとのメッセージが… 実際携帯電話でプレビューしてみても、どんなパスワードでもOKに なってしまいました。なるべく簡単なスクリプトで済ませたいのですが、 this.gotoAndStopが使えないFlash Lite1.1でこれを実現するには どこをどう修正すれば良いのでしょうか? Action Scriptに詳しいお方、お助け願います。

    • ベストアンサー
    • Flash
  • Flash Lite1.1 について

    お世話になっています。 携帯用のアプリ開発をができる Flash Lite1.1 を扱い始めて、1週間になります。どうしても分からないことがでてきたので、こちらで質問をさせていただきます。 現在、任意の複数のswfファイルを自由に作成と削除を行える携帯アプリを考えています。機能としましては、番号キーで指定した処理を行いたいMovieClipに対して、ファイルのロードか削除を行うというものです。 以下は、読み込み・削除部分のスクリプトです。 // *bボタンで読み込みを行う on( keyPress "*") { // 作成するのMovieClipを指定 newName = "cscr" add no; // MovieClipの複製 // 深度は全て同じ位置 duplicateMovieClip("scr", newName, 0 ); // MovieClipのロード url = "Load" add no add ".swf"; loadMovie ( url, newName ); } // #ボタンで削除 on( keyPress "#") { // アクセスするMovieClip名 newName = "cscr" add no; unloadMovie( newName ); } no : 作成するmovieClip番号・ロードするswfファイルの番号 scr : ムービーファイル表示用MovieClip( あらかじめめ画面に配置してあります ) 私が分からないところは、表示するMovieClipの切り替えです。 作成する分に関しては、作ったMovieClipが表示されていくのですが、以前に作成したムービークリップを表示のさせ方が分かりません。Load0.swf、Load1.swf、Load2.swfをロードした場合、cscr0、cscr1、cscr2が作成され、cscr2が表示されている時に cscr0 の内容に切り替えたいと思います。 私が行った方法は、tellTarget を使い、表示するMovieClip以外は、プロパティの_visible 非表示に設定したり、座標を画面外に移動させる方法を試しましたが、思った通りに動作をしませんでした。 どうやって、表示をさせたらよろしいでしょうか? また、削除するスクリプトに関してですが、本当に削除されているのでしょうか?

    • ベストアンサー
    • Flash

専門家に質問してみよう