コピペで持ってきたのにasが働かない?
- 円グラフが表示されて吹き出しのアニメーションがうまく動作しない問題について質問があります。
- シーンの円グラフにはタイミングが設定されており、4つの吹き出しの内容が変わる仕組みですが、他のアニメーションと組み合わせると吹き出しが表示されなくなってしまいます。
- 質問者はシーンやASの設定が間違っているのかと考え、新規ファイルやシーン全体をコピーしても同様の問題が発生します。解決策を求めています。
- ベストアンサー
コピペで持ってきたのにasが働かない?
円グラフがあり、グラフが進んで表示されるていく順に説明の吹き出しが4つボヨンとでて最後に大きな吹き出しがボヨンとでるのがあり、吹き出しの内容を変え、無事動いたのですが、他のアニメの後にそれを入れようとしてコピベすると、4つの吹き出しがでないのです。ルートがおかしいかと思い、新規ファイル、シーンに丸ごと、「すべてのフレームを選択」でもってきても、4つの吹き出しがでなくなる。どうしてでしょう?(元もシーンにある)ASはそのまま、フレームラベルもそのままなのに。 シーンの円グラフMCに onClipEvent(load){ stoptime = getTimer(); waittime = 4500; } onClipEvent(enterFrame){ if (getTimer() >= stoptime + waittime) { for (i=1; i<=4; i++){ mc = "MC_fukidasi" + (i); _root[mc].targetScale = 0; } _root.gotoAndStop("scene2"); } } 円グラフMCの中、吹き出しのタイミングでMC1~4番号替え _root.MC_fukidasi1.flag = true; シーンの吹き出し1~4それぞれ onClipEvent(load){ targetscale = this._xscale; nowscale = 0; this._xscale = this._yscale = this._alpha = nowscale; decay = 0.6; speed = 0.3; flag = false; } onClipEvent(enterFrame){ if (flag == true){ nowscale = nowscale * decay + (targetScale - this._xscale) * speed; this._xscale = this._yscale = this._alpha += nowscale; } } 大きな吹き出しMCに、flagなしのボヨンとでるas 上のフレームラベル「scene2」 アニメの説明の為に、アニメの後ろこれを入れたいので、どうしたらいいのかわかりません。 スクリプトが判らないので何か方法はないでしょうか?
- mayukanon
- お礼率100% (1/1)
- Flash
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
すみませんが「わからない。」というのが結論です。 見た感じの印象ですが, 今ではおそらく使わないスクリプトが使われています。 使わないだけで,動かない,使えない というわけではありません。 今でも十分使えるのですが,使わないだろうと思うところが, ------------------------------- onClipEvent(load){ stoptime = getTimer(); waittime = 4500; } onClipEvent(enterFrame){ if (getTimer() >= stoptime + waittime) { for (i=1; i<=4; i++){ mc = "MC_fukidasi" + (i); _root[mc].targetScale = 0; } _root.gotoAndStop("scene2"); } } ------------------------------- この部分です。 Flash MX 以上(2002年以降)のバージョンだと, この部分は setInterval を使うと思います。 最初にも書きましたが, 「わからない。」というのが結論です。 だから,以下は単なる推測です。 元のファイルは Flash 5 で作られたのではないかと思います。 そして,お使いのバージョンを書かれていませんが,Flash MX 2004 ではないかと勝手に思います。 古いバージョンのファイルを,Flash MX 2004 を使って Flash Player 5 のバージョンで書き出した場合,うまく表示されるのですが, >> 新規ファイル、シーンに丸ごと、「すべてのフレームを選択」でもってきても、… の場合,Flash MX 2004 では,デフォルトで Flash Player 7 用のSWFをパブリッシュします。 そのときに,Flash MX 2004 では通用しないことがあれば正常に動かない場合があります。 パブリッシュの設定で Flash Player のバージョンを 5 ,もしくは 6 にしてパブリッシュすれば, ひょっとしたら上手く行くかもしれません。 書かれているスクリプトを書かれた本人の方がご質問をされているのでしたら, おそらく,何回→回答→補足→回答 を繰り返すと,思った通りのものができるという気はしますが, そうでなくて,書かれているスクリプトの意味もあまりわかっていらっしゃらないのでしたら, こちらから補足要求の質問をしても,それに答えられない気がします。 例えば, >> 円グラフMCの中、吹き出しのタイミングでMC1~4番号替え >> _root.MC_fukidasi1.flag = true; >> シーンの吹き出し1~4それぞれ 「この変数flag の値を true にする条件は何ですか? また,その条件の中に登場する変数の初期値の設定は出来ていますか?」 など,こちらからの質問をしなおしたとしても,答えようがない気がします。 ですから,申し訳ございませんが,根本的解決ではなく, Flash Player 5 ,または Flash Player 6 の SWF をパブリッシュしてみるという, 応急処置的方法を提案します。 また,フレームレートが最初のファイルとズレると色々なタイミングが合わなくなる可能性もありますから, ドキュメントのプロパティでフレームレートを合わせることもお薦めします。 上の,応急処置でもうまくできるかどうかはわかりません。 とにかく質問で書かれている内容からはこれくらいのことしかいえません。 また,書かれているスクリプトも別に間違った部分は見あたりません。 ただ作成環境が Flash 5 っぽいなと言えるだけです。
関連するQ&A
- 揺れるスクリプトについて
こちらで教えていただいたサイトで揺れるスクリプト を勉強していたのですが、 ■をMCにして、 onClipEvent (load) { this._xscale = this._yscale = 0; function sMove(mScale,acc,conv) { theScale = theScale*acc+(mScale-this._yscale)*conv; this._xscale = this._yscale += theScale; } } onClipEvent (enterFrame) { if (this.hitTest(_root._xmouse,_root._ymouse,1)) { sMove(130,0.8,0.2); } else { sMove(100,0.8,0.2); } } と書いたのですがプレビューすると真っ白なままなにも 表示されません。 なぜなのでしょうか?
- ベストアンサー
- Flash
- Flash ふわふわメニュー ロールオーバーでストップ
下記サイトを参考にして、ふわふわしたメニューを作成したのですが、ボタン(風船)をロールオーバーしたらストップするようにするにはどうしたらよいのでしょうか?使用しているバージョンはFLASH8です。 http://hfm-kenchan.com/Lesson/log_qa/D0609292.htm onClipEvent (load) { this._xscale = this._yscale = 10; vs = 0; } onClipEvent (enterFrame) { vs = vs*0.8+(100-this._yscale)/5; this._xscale = this._yscale += vs; } onClipEvent (load) { yy = this._y; rad = 0; } onClipEvent (enterFrame) { this._rotation += 0.2; rad += 0.1; this._y = Math.sin(rad)*10+yy; if (rad > 10) }
- 締切済み
- Flash
- ボタンをロールオーバーした時にMCを複製したい
はじめまして、よろしくお願いします。 表題の通りですが、 ボタンをロールオーバーした時にMCを複製したいのですが、やり方がわかりません。 body(←ボタン名)を押した時に snow(←複製されるMC名)を噴射するような形にしたいです。 フレーム1に書かれたスクリプト------------------- for (count = 1;count<30;count ++) { snow.duplicateMovieClip("snow" + count , count ); } ----------------------------------------------- 複製されるMC(snow)---------------------------------- onClipEvent(load){ xposition = _root.body._x+75; yposition = _root.body._y+75; scale = Math.random()*30+10; speedx = 12-(scale+Math.random()*30+1)/5; speedy = 12-scale/5; this._x = xposition; this._y = yposition; this._xscale = scale; this._yscale = scale; } onClipEvent (enterFrame){ if(this._y>400){ this._y=yposition; this._x=_root.body._x+75; this._alpha = 100; } this._x+=speedx; this._y+=speedy; this._alpha = this._alpha-5; } ----------------------------------------------- 早急に解決しなくてはならなく、困っています。 よろしくお願いします。
- ベストアンサー
- Flash
- ムービークリップの拡大縮小
MCをクリックしたら拡大・縮小をさせたく、過去の投稿を参考にしながら、以下のscriptを作りました。 onClipEvent(load){ v_orgScale = this._xscale; v_orgX = this._x; v_orgY = this._y; zoomState = false; } on(release, releaseOutside){ zoomState = !zoomState; this.onEnterFrame = function(){ if( zoomState ){ if(this._xscale >= v_orgScale*2.3){ delete this.onEnterFrame; }else{ this._xscale *= 1.1; this._yscale *= 1.1; } }else if( !zoomState){ if(this._xscale <= v_orgScale){ this._xscale = v_orgScale; this._yscale = v_orgScale; delete this.onEnterFrame; }else{ this._xscale *= 0.9; this._yscale *= 0.9; } } }; } ただ、これだとMCの基準点(0,0)に対しての拡大縮小なのでクリックしたポイントが拡大するにつれてどんどんずれていきますよね? これをクリックしたポイントがずれないように拡大縮小する事は可能でしょうか? 宜しくお願いいたします。
- ベストアンサー
- Flash
- flash as2.0 hitTest()について
FLASHMXで作業をしています。 mcが壁に当たると反対方向にmcを移動させたいのですが 以下では、うまくいきません。理由がわかりませんし打開策も わかりません。解決策を教えてください。よろしくお願いいたします。 onClipEvent(load){ this._x=100; this._y=380; } onClipEvent(enterFrame){ this._y -=3; if(_root.tama_mc.hitTest(_root.kabe_mc)==true){ this._y +=5; } }
- ベストアンサー
- その他(ソフトウェア)
- マウスオーバー(クリック)画像がでズーム
下記のサイトのように画像にマウスが乗ったら、ズームするようにしたいのですが、どのようなスクリプトを書いているのでしょうか? http://www.bobscube.com/ もしくは下記のサイトのようにクリックすると画像がズームするサイト。スクリプト的には同じ(マウスクリックとマウスオーバーの違い)じゃないかと思うのですが・・・。 http://www.opfa.org/ 単純に画像がズームするだけなら、こちらのサイトに載っていた↓で出来るのですが、上記サイトのように滑らかにズームする方法が分かりません。 onClipEvent (load) { this._yscale = 100; this._xscale = 100; } on (rollOver) { this._yscale = 200; this._xscale = 200; } on (rollOut) { this._yscale = 100; this._xscale = 100; } ご教授宜しくお願い致します。
- ベストアンサー
- Flash
- scriptを使いまわしたい。
見よう見まねで下記のようなスクリプトを記述しています。 複数のムービークリップに設定していますが、編集するのにかなり手間がかかります。うまく使いまわす方法はございませんでしょうか…。 また、記述の仕方にも問題等ありましたらご指南ください。。 onClipEvent (load) { sx_move = Math.floor(Math.random() * -10) - 3; sy_move = Math.floor(Math.random() * 6) - 3; s_scale = Math.floor(Math.random() * 40) + 40; _xscale = (s_scale); _yscale = (s_scale); n = 1; } onClipEvent (enterFrame) { _x += (sx_move); _y += (sy_move); } on (rollOver) { mx.behaviors.DepthControl.bringToFront(_root); this.onEnterFrame = function () { n += 1; _x -= (sx_move); _y -= (sy_move); if (n < 20) { _x = (_x + 25) / 1.5; _y = (_y + 12) / 1.5; _xscale = (_xscale + 50) / 1.5; _yscale = (_yscale + 50) / 1.5; } else if (n < 40) { stop(); } else if (n < 50) { _x += 13; _y += 13; _alpha -= 20; _xscale = (_xscale) / 1.2; _yscale = (_yscale) / 1.2; } else { stop(); } }; }
- ベストアンサー
- Flash
- 縮小させる時の基点について
ActionScriptを勉強中です。分からないことがあるので質問させていただきます。 ステージ上にマスクをかけたムービークリップ(インスタンス名:mc)があり、 そのmcを拡大ボタンと縮小ボタンを使い拡大/縮小できるようにしています。 mcが拡大されている時には、mc自体をドラッグして動かせるようにしています。 レイヤー構造は ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 1、ボタン:拡大ボタンと縮小ボタンを配置 2、マスク ---マスクの対象:mcを配置 3、背景:背景というか枠を書いています ーーーーーーーーーーーーーーーーーーーーーーーーーーーー となっております。 mcにには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (press) { left = Stage.width-this._width/2-2; top = Stage.height-this._height/2-98; right = this._width/2+2; bottom = this._height/2+2; this.startDrag(false, left, top, right, bottom); } on (release, releaseOutside) { this.stopDrag(); } ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 拡大ボタンには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (release) { if (mc._yscale < 300) { mc._xscale = mc._yscale += 100; } else { mc._xscale = mc._yscale = 300; } }ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 縮小ボタンには ーーーーーーーーーーーーーーーーーーーーーーーーーーーー on (release) { if (mc._yscale > 100) { mc._xscale = mc._yscale -= 100; } else { mc._xscale = mc._yscale = 100; } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーー と書いています。 拡大した時の挙動は問題ないのですが、縮小する時の挙動に問題があります。 mcの中心を基点にしているため、端の方でで縮小すると余白が見えてしまいます。 この余白を見せないためにはどうしたら良いのでしょうか? 素人考えでhitTest()を使えば良いのかと思っているのですが、なかなかうまくいきません。 どうしたらよいのかご教示いただけると助かります。よろしくお願いいたします。 制作環境はCS4でAS2.0です。
- 締切済み
- Flash
- 画像を中央にズームさせるには
Flash超初心者です。 小さな画像が2、3個横に並んでいて、一つをクリックすると中央にズームし、他の画像をクリックすると先にズームされていた画像がもとの小さな画像に戻るようにしたいです。 http://www.suntory.co.jp/sho-chu/srk/urabanashi.html 過去ログに参考になるものがあり http://oshiete1.goo.ne.jp/kotaeru.php3?q=1444680 少し変更して下記のようにしました。 onClipEvent (load) { yScl = this._yscale; xScl = this._xscale; yPos = this._y; xPos = this._x; } on (rollOver) { this.onEnterFrame = function() { this._yscale *= 1.1; this._xscale *= 1.1; if (this._yscale>=yScl*2.5) { this._yscale = yScl*2.5; this._xscale = xScl*2.5; this.swapDepths(++_root.Depth); } }; } on (rollOut, dragOut) { this.onEnterFrame = function() { this._yscale *= 0.9; this._xscale *= 0.9; this._y += (yPos-this._y)*0.3; this._x += (xPos-this._x)*0.3; if (this._yscale<=yScl) { this._yscale = yScl; this._xscale = xScl; this._y = yPos; this._x = xPos; this.onEnterFrame = null; } }; } でも、これは画像のある同じ場所でズームするので画面の中央でズームさせたいです。 座標を指定すればいいという理屈はわかるのですが、どの部分にどういASを入れたらいいのがわかりません。 また、上記のASでは、ズームしたあとマウスがオブジェクトからはずれると画像がもとの大きさにもどってしまいます。 on (rollOut, dragOut)と入れているからでしょうが、では何を入れたらいいの悩んでしまいましてご相談させていただきました。 どなたかご教授ください。よろしくお願いいたします。
- ベストアンサー
- Flash
- 2つのswfファイルをつなげている場合の一括ローディング方法
お世話になります。 この質問の下の質問で、外部JPGファイル読み込みのローディング方法を質問しておられますが、そこを読んでも、外部swfファイル読み込みの際のローディング方法に応用することが出来ませんでした。 700Kのswfの最後のフレームに、 loadMovieNum("img/next.swf", 0); として、500kのnext.swfファイルとつなげています。 最初のswfファイルの1シーン目で、2つのswfを全て読み込み、再生時のつながりをスムーズにしたいと考えています。 最初のswfの1シーン目に、 ローディングオブジェクトを置き、 onClipEvent (load) { _root.stop(); par = 0; bar._xscale = 1; } onClipEvent (enterFrame) { par = parseInt((_root.getBytesLoaded() / _root.getBytesTotal()) * 100); if (par == 0) { par = 1; } else if (par >= 100) { par = 100; _root.gotoAndPlay("start"); } bar._xscale = par; } ローディングすると、フレームラベル「start」 に飛び、 そのフレームに置いているオブジェクトに onClipEvent (load) { par = 100; bar._xscale = 100; } onClipEvent (enterFrame) { _alpha -= 5; } を書き込んでいます。 そして、2シーン目に飛び、 2シーン目の最後のフレームに、 loadMovieNum("img/next.swf", 0); を置いてつなげています。 FLASH本を数冊持っているのですが、2つのswfを 同時にローディングする方法が載っておらず、 こちらに質問を書かせていただきました。 もしかしたらこの質問の下質問JEPファイルの ローディングと内容がかぶってるかもしれませんが、 よろしくお願い致します。 【制作環境】 Win XP FLAS MX
- ベストアンサー
- Flash
お礼
結論から先に書きます。 Flash Player 5,Flash Player 6のでパブリッシュしてみたら吹き出しがでました!そんな事も浮かばないで、パニクッテ・・・。 Studio 8にアップグレードしたばかりで、 Flash Player 7の設定だったのです。 元のFlashデータは本なのですが、「平成17年11月初版」となっていたので、新しいと勝手に思って、よく見ると小さい字で、「2005年9月のデータを元に編集・・」とあるので、作成時にはもっとバージョンが古いかも。 >>この変数flag の値を true にする条件は何ですか? また,その条件の中に登場する変数の初期値の設定は出来ていますか? 円グラフにマスクがあり、それが進み、4色分けしてあるグラフの、マスクがそれぞれのフレームに達した時のタイミングでtrue にする、変数の初期値は「0」? きっと、ご質問されてる事とズレてるんでしょうね、私のこの説明は・・。すいません。ホントASが簡単なものもまだわからなくて、動いたり動かなかったり。 setInterval ついてもお聞きしたいところですが、厚かましいので、皆さんの書き込みやら見て、勉強します。 とにかく、何より、本当に本当にありがとうございました!!