- ベストアンサー
アクションスクリプト教えて下さい
http://exyz.cocolog-nifty.com/good_sleep/2009/01/flash-40e7.html ↑このサイトを参考にさせていただいてるんですが、 写真が縦にスライドしているのを横にし、 尚かつ http://www.sony.co.jp/の様に上の写真がめくれて、下の写真を表示させたいのですが知識が乏しくお力をお借りしたいのですが、簡単な事なのか、難しい事なのかすら分かりません。 欲を言えばアクションスクリプトを記述していただけると嬉しいのですが... どなたかご教授お願いできませんでしょうか。 //初期設定 SlideNum = 0; Speed = 10; //スライド targetY = new Array(); targetY = [0,-150,-300,-450]; imgGr.onEnterFrame = yMove; function yMove(){ var Dist = targetY[SlideNum]-this._y; if(Math.abs(nDest) < 0.5){ this._y = targetY[SlideNum]; }else{ this._y += Dist/Speed; } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- ikeike77
- ベストアンサー率37% (18/48)
関連するQ&A
- 1フレームにActionを設定したときの止め方
ただ今flash勉強中の初心者です。検索したり本を調べたりしても根本が理解できていないためか、解答策が見つからず困っています。 自分で作ったものではないのですが、1フレーム目にActionを書いています。動きとしては、テレビの砂嵐のような画面に、二種類の文字がランダムに出て、ラインもランダムに出てくるという感じです。以下のscriptだと永遠と続くのですが、5秒ぐらいランダムに文字とラインが出て、その後砂嵐の画面だけにして止めたいのですが、どうしたら良いかわかりません。 使用しているソフトはFlash8、MacOSX10.4です。 import flash.display.BitmapData; var tv_noise:BitmapData = new BitmapData(Stage.width,Sage.height,true); _root.attachBitmap(tv_noise,20); _root.attachMovie("text1","text_1",3); _root["text_1"].scale = 350; _root["text_1"].onEnterFrame = random_me; _root.attachMovie("text2","text_2",2); _root["text_2"].scale = 350; _root["text_2"].onEnterFrame = random_me; _root.attachMovie("line","line_1",1); _root["line_1"]._y = Stage.height/2; _root["line_1"]._alpha = 40; _root["line_1"].onEnterFrame = scale_me; function random_me():Void{ this._x = 10+Math.round(Math.random()*Stage.width); this._y = 10+Math.round(Math.random()*Stage.height); this._xscale = this._yscale = Math.round(Math.ramdom() *this.scale); this._alpha = 10+Math.round(Math.random()*100); } function scrach_me():Void{ this._x = 10+Math.round(Math.random()*Stage.width); tv_noise.noise(Math.round(Math.random()*100000),80,170,8,true); } 宜しくお願いします。
- ベストアンサー
- Flash
- flash アコーディオン 元の状態に
flash アクションスクリプトにてアコーディオンメニューを こちらのブログを参考に作りました。 http://exyz.cocolog-nifty.com/good_sleep/2007/12/au_45b8.html 一応できたのですが、 マウスが離れたら元の状態に戻る様につくれないでしょうか? このjavaでつくったもののようにです。 http://exyz.cocolog-nifty.com/good_sleep/2007/12/javascript_df4d.html 何分スクリプト初心者なため、言語などの理解ができなく応用できません…。 どうかよろしくお願いいたします。
- ベストアンサー
- 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
- 一つのレイヤーのみフィルターをかける方法
FLASH8です。 写真の自動スライドショー的なものを作成しようとしています。 あるサイトにあった無料スクリプトをコピペし、表示は問題なくできるようになりました。 そのスクリプトは外部から写真を読み込み、画像と画像のフェードイン・アウト時にブラーエフェクトでつないでいくものです。(下記参照) これにレイヤーを一つ追加し、追加したレイヤー(上階層)はずっと表示させておきたいのですが、そのレイヤーの画像にまでエフェクトがかかってしまいます。 エフェクトをかからないようにする方法はありませんか? ちょっと説明が足り無いかもしれないんですが、何の情報を言ったらいいか分からないので、よければ補足要求いただければ回答いたします。 よろしくお願い致します。 ============================== import flash.filters.BlurFilter; var picsArray:Array = new Array("flash/01.jpg","flash/02.jpg","flash/03.jpg","flash/04.jpg"); var filter:BlurFilter = new BlurFilter(0, 0, 3); var picNum:Number = 0; var nextPic_int:Number var picHolder:MovieClip = _root.createEmptyMovieClip("picHolder", 1); function fadeOut(){ clearInterval(nextPic_int); picHolder.onEnterFrame = function(){ if(this._alpha > 0){ this._alpha -= 1; filter.blurX = (100 - this._alpha) / 4; filter.blurY = (100 - this._alpha) / 4; this.filters = [filter]; }else{ delete this.onEnterFrame; loadPic(); } } } function loadPic(){ trace("picNum: " + picNum); //load the pic here picHolder.createEmptyMovieClip("pic", 1); picHolder._alpha = 0; picHolder.pic.loadMovie(picsArray[picNum], 1); picHolder.onEnterFrame = function(){ if(picHolder.pic.getBytesLoaded() > 4 && picHolder.pic.getBytesLoaded() == picHolder.pic.getBytesTotal()){ this.onEnterFrame = function(){ if(this._alpha < 100){ this._alpha += 2; filter.blurX = (100 - this._alpha) / 4; filter.blurY = (100 - this._alpha) / 4; this.filters = [filter]; }else{ delete this.onEnterFrame; nextPic_int = setInterval(fadeOut, 10000); } } } } if(picNum == picsArray.length - 1){ picNum = 0; }else{ picNum++; } } loadPic(); stop(); ==============================
- ベストアンサー
- Flash
- [Flash]actionscript2.0を用いて歯車を作りたいのですが
Adobe FLASH CS2を使い2つのかみ合った歯車を制作しています。 ドラッグで片方の歯車を回転させると もう片方の方は逆回転になるはずですが、 うまいことactionscriptをかくことができません。 片方はこのようなactionscriptを使っているのですが うまい作り方はないでしょうか。 よろしくおねがいします。 on (press) { //このMCの基準点からのマウス座標を取得 rx0 = _root._xmouse-this._x; ry0 = _root._ymouse-this._y; //このMCの基準点とマウスとの距離を算出 td0 = Math.sqrt(rx0*rx0+ry0*ry0); //マウスによる回転の差分を算出 tr0 = (Math.PI/2+Math.atan2(ry0, rx0))*180/Math.PI-this._rotation; //onEnterFrame を定義 this.onEnterFrame = function() { //現在のMCの基準点からのマウス座標を取得 rx1 = _root._xmouse-this._x; ry1 = _root._ymouse-this._y; //このMCの回転を計算 this._rotation = (Math.PI/2+Math.atan2(ry1, rx1))*180/Math.PI-tr0; //このMCの移動を計算 }; } on (release, releaseOutside) { //この onEnterFrame を削除 delete this.onEnterFrame; }
- 締切済み
- Flash
- ASで降らせた雪のマスクの掛け方について。
下記のサイトのASを使用させていただき、雪の降るFlashを作成したのですが、 参照サイト : http://www.webdesignlibrary.jp/2006/06/flash_snow.php このスクリプトで降らせた雪を、例えば星型の図形をマスクにして、 その範囲内で雪が降るようにしたいと思い、 色々と丸一日掛けて調べたのですが、全く上手く行きません。 とりあえず、色々と調べてみた結果、 【 xxx.setMask 】 を使えば良いのだろうか・・?、、、と言う所までは 行き着いたのですが、スクリプトを、どう改造?してみても、全く思う結果が得られません。 【 _root.setMask 】 で、ステージ全体を、目的の図形MCでマスクする事で、 思う結果に近しいカタチは出来たのですが、_root.setMask でステージをマスクしてしまうと、 例えば、マスク外に何か画像処理を施したくても、マスク外の画像は全て消えてしまいますし、 その画像の大きさ込みでマスクを作成すると、その画像の上にも雪が降ってしまうので、 完全に行き詰ってしまっています。 ASで降らせた雪だけをマスクする方法はありますでしょうか? どなたか、ご存知の方がいらっしゃいましたらば、 是非にご教示願えますと、大変ありがたいです。 何卒よろしくお願い申し上げますm(_ _)m 以下、使用AS ------------------------------------------------ width = 550; height = 400; total = 200; for (var t = 0; t != total; t++) { var mc = _root.attachMovie("snowflake", "snowflake"+t, _root.getNextHighestDepth()); mc._x = (Math.random()*(width+20))-10; mc._y = (Math.random()*(height+20))-10; mc.yspeed = (Math.random()*1.75)+0.25; mc.speed = (Math.random()*3)+2; mc._xscale = mc._yscale=(mc.speed+mc.yspeed)*10; mc.onEnterFrame = function() { var angle = Math.atan2(_root._xmouse-(width/2), _root._ymouse)+1.5707963267949; this._y += Math.sin(angle)*this.speed+this.yspeed; this._x += Math.cos(angle)*this.speed; if (this._x>width+10) { this._x = -10; } else if (this._x<0-10) { this._x = width+10; } if (this._y>height+10) { this._y = -10; } else if (this._y<0-10) { this._y = height+10; } }; } ------------------------------------------------ 【 AS使用環境 】 Adobe Flash CS3, アクションスクリプト2.0
- ベストアンサー
- Flash
- adobe flashアクションスクリプト内の優先順位について。
adobe flashアクションスクリプト内の優先順位について。 こんにちは。 まだflashをあたり始めて1~2週間ほどしかたっておらず、初歩的で 意味の分からない質問かもしれませんが、教えて頂けると助かります。 アコーディオンメニューを作りたくて、下記のサイトを参考に作成しました。 http://exyz.cocolog-nifty.com/good_sleep/2007/12/au_45b8.html 質問はこのメニューに、flashからマウスが離れると、メニュー1(パネル1)の状態に戻るように するにはどうするのが一番良いのか、ということです。 とにかくまだ用語が分かっておらず、結局 panel02_mc.onRollOut = Delegate.create (this,function():Void{ tw (0,300,320,panel01_mc,panel02_mc,panel03_mc); }); panel03_mc.ononRollOut = Delegate.create (this,function():Void{ tw (0,300,320,panel01_mc,panel02_mc,panel03_mc); }); を付け加える事で思った通りの動きにはなったのですが、ここで疑問がでてきました。 メニュー2からマウスをメニュー3の位置へ動かすと、 メニュー1の状態に戻る命令と、メニュー3の位置へ動く命令が重なっていると思うのです。 実際には、きちんとメニュー3の位置へ動くのですが、アクションスクリプトには ムービークリップの重なり順や、アクションスクリプトにおいて上からの順など 命令文に対しての優先順位があるのでしょうか? なんだか、動くけどもおかしなアクションスクリプトの書き方をしているのではないかと心配で。 本当は、メニュー2かつメニュー3からマウスが離れるとメニュー1の状態に戻るという 命令文をいれたかったのですが...。
- ベストアンサー
- Flash
- 坂道を転がる動きをご教授願いたい
現在、Flash8にて任意の角度を指定し、 そので転がるボールの動きを作っています。 Actionscriptは以下の通りです。 //角度 rot=0; //転がるmc、ballの質量 m=0.5; //静止摩擦係数 ius=0.05; //運動摩擦係数 iuk=0.07; //時間 t=0; tt=1/30; //重さ w=0.5*9.8; //坂道のmc、saka saka.onEnterFrame=function(){ this._rotation=rot; //垂直抗力 N=w*Math.cos(rot*Math.PI/180); //転がる力 Fp=w*Math.sin(rot*Math.PI/180); //静止摩擦力 Fs=ius*N; //転がるかどうかの判定 if(Fp<Fs){ //運動摩擦力 Fk=iuk*(w*-1); //加速度を出してx、yに代入 Fk_p=[Fk*Math.cos(rot*Math.PI/180),Fk*Math.sin(rot*Math.PI/180)]; Fp_p=[Fp*Math.cos(rot-180*Math.PI/180),Fp*Math.sin(rot-180*Math.PI/180)]; Fnet=[Fp_p[0]+Fk_p[0],Fp_p[1]+Fk_p[1]]; a=new Array(); a[0]=Fnet[0]/0.5; a[1]=Fnet[1]/0.5; t=t+tt; _root.ball._x+=0*t+1/2*a[0]*t*t; _root.ball._y+=0*t+1/2*a[1]*t*t; } //転がるボールのmc、ball ball.onEnterFrame=function(){ this._rotation=rot; } ballが坂道を転がらずあらぬ方向に行っちゃいます。 どこがどう間違っているのかも頭がゴチャついてて判りません。 物凄く勘違いなことをしているのだと思います。 お教え願えればと思います。よろしくお願いします。
- ベストアンサー
- Flash
- Key操作について
http://www.kaitopurin.com/ 上記のサイトの様にキャラクターをキー操作によって動かしたいのですが、わかりません。 var thirom:MovieClip; var back:MovieClip; var speed:Number = 4; thirom.onEnterFrame = test; function test():Void { if(Key.isDown(Key.LEFT)) this._x -= speed; if(Key.isDown(Key.RIGHT)) this._x += speed; if(Key.isDown(Key.UP)) this._y -= speed; if(Key.isDown(Key.DOWN)) this._y += speed; } 途中までスクリプトを書いてみたんですが、ここから先がわかりません。例えば動かす対象のムービークリップ内にジャンプやしゃがむ動作を取り入れて、ラベルなどで移動する方法が一般的なんでしょうか? どうかご教授お願いします。 環境はMac,flash8です。
- ベストアンサー
- Flash
- フラッシュ、ロールオーバーでスライドするメニューを作りたいのですが
?http://www.au.kddi.com/? こちらのauのサイトのトップページのスライドするメニューを 作成したく、 http://www.condo.fromc.jp/flash/memo/index.html ここの5つ目の「スライド式メニュー」を使わせてもらったのですが、 こちらのファイルでは、ロールアウトした際に、全てのタブが 右に戻ってしまいます。ロールアウトした時は、タブを等間隔に 戻す様にしたくて、スクリプトをいろいろといじってみて どうしてもできません。以下のスクリプトのままでは、 右に戻ってしまうのは理屈ではわかるのですが、 計算式がいまいちわかりません。 こちらはどのように修正すればよいのでしょうか? onClipEvent (load) { nMyNum = 0; nTotal = 4; nMinX = 5; nMaxX = 468; nDest = nMaxX; nDelay = 10; this.hitArea = button_mc; function xSetDest(nNum) { var i = 1; while (i<=nNum) { _parent["cont"+i+"_mc"].xSetMove("left"); i++; } while (i<=nTotal) { _parent["cont"+i+"_mc"].xSetMove("right"); i++; } } function xSetMove(sDest) { switch (sDest) { case "left" : nDest = nMinX; break; case "right" : nDest = nMaxX; break; } this.onEnterFrame = xMove; } function xMove() { nNextX = this._x+(nDest-this._x)/nDelay; if (Math.abs(nDest-nNextX)>0.1) { this._x = nNextX; } else { this._x = nDest; delete this.onEnterFrame; } } } on (rollOver) { this.xSetDest(nMyNum); }
- ベストアンサー
- Flash
- スクリーンショットを撮影した後、勝手に印刷されてしまう問題が発生しています。どうすれば自動印刷を止めることができるでしょうか?
- スクリーンショットを取った際、自動的に印刷されてしまう問題に悩まされています。この問題を解決するための方法を教えてください。
- EPSON社製品を使用している際に、スクリーンショットを撮ると自動的に印刷が行われてしまいます。この自動印刷の問題を解決する方法はありますか?
お礼
ご回答ありがとうございます。 原理だけでも知ることができて満足しています。 もう少し勉強してみます。 ありがとうございました。