1 名前:Now_loading...774KB [2007/08/18(土) 08:48:49 ID:g0sVH2IC] AcitonScriptのことなら 初歩的な質問でもなんでもおk 見れない、保存したい、flashを作りたいはスレ違い 下記の関連スレ、超基本的な質問へ。 ●質問する時は自分の環境を書く 書いてない場合WinXP,FlashMX2004(AS2.0以降)を前提で ●質問はものすごい勢いじゃなくて結構 ●できるだけコードも示す ●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く 直前スレ ActionScript 誰かが物凄い勢いで解答するスレ 16 pc11.2ch.net/test/read.cgi/swf/1178021352/l50 関連スレ Flashの超基本的な質問はここでしろ! part35 pc11.2ch.net/test/read.cgi/swf/1184667056/l50 Flash製作初心者の質問スレッド レイヤー36 pc11.2ch.net/test/read.cgi/swf/1173006099/l50 サイト、参考書籍、関連情報は>>2-10 あたり
4 名前:Now_loading...774KB mailto:sage [2007/08/18(土) 17:22:44 ID:rmevAXa2] windowsXP FLASH8 です。 ムービークリップに onClipEvent (load) { if (_root.変数1 == true) { this. gotoAndPlay("A"); } if (_root.変数2 == true) { this.gotoAndPlay("B"); } } と記述して動作しているのですが同じ内容を記述するムービークリップが 多くなりそうなのでfunctionにすることにしました ↓rootタイムラインに記述 function 名無し() { if (_root.変数1 == true) { this. gotoAndPlay("A"); } if (_root.変数2 == true) { this.gotoAndPlay("B"); } } ↓ムービークリップに記述 onClipEvent (load) { _root.名無し(); } では動作してくれません。。。。。 どこが問題なのでしょうか。。。。。orz
5 名前:Now_loading...774KB mailto:sage [2007/08/18(土) 18:49:09 ID:JpSxShXi] >>4 thisが違うんじゃない? function 名無し(mc:MovieClip){ mc.gotoAndPlay("A"); //他は略 } 呼ぶときは _root.名無し(this)
6 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 01:23:19 ID:xj1FghBM] flashでホームページを作っています。 各アイコンのボタンをMCにして、マウスが近づくと大きくなるようにしているんですが 数が増えてしまいCPU負荷が予想以上に多くなってしまいました。 対策として、アイコンのエリアより大きいサイズの透明のMCに onClipEvent (load) { Iconflag = true; } on (rollOver) { Iconflag = true; } on (rollOut) { Iconflag = false; } と書き。アイコンのMCに onClipEvent (enterFrame) { if (Iconflag == true) { xm = _parent._xmouse; ym = _parent._ymouse; span = Math.sqrt(xm*xm+ym*ym); if (span>100) { mcScale = 80; } else { mcScale = 80+(span-100)*-20/100; } this._alpha = this._xscale=this._yscale=mcScale; } } とやってみて負荷は下がったのですがアイコンの拡大縮小が滑らかではなくなってしまいました 原因があれば直していきたいのでぜひ教えてください
7 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 02:00:39 ID:5SDHQgxV] >>6 円型のMCの半径100ピクセル範囲にマウスがあったら その距離に合わせてサイズを変えるという事かな。 on(RollOver)イベントが発生するのは「MCとの距離が80以内の(重なっている)時」 本来は「100ピクセル以内に入ったらサイズ変更する」はずなので そこが上手く処理できていない。 上手い解決策かは分からないけど MCの中に半径100の円を作って背景色と同じにするか(他のMCと重なるかも) 入れ子のMCにしてonClipEvent(load){_visible = false} で、見えなくすればいいかも。
8 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 02:08:37 ID:5SDHQgxV] しまった、自分の質問忘れてたorz MCの存在をチェックする時の質問です var Mc:MovieClip = _root.MC; とルート上のMCを変数に割り当てた後 MC.removeMovieClip(); で削除後、 Mcの変数を使って存在をチェックします。 「if(Mc == ??)」の「??」にあたるものが分からず 今は「if(Mc._x == undefined」というように内部のプロパティを見て判定しています。 この「??」またはMcを利用して存在をチェックするにはどうすればいいのでしょう。 教えていただきたいです。
9 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 02:46:57 ID:NTX07+iK] >>8 下記でどうでしょう? var mc:MovieClip = _root.mc; if (mc === undefined) { trace("mc 無いよ"); } //出力結果 mc 無いよ
10 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 03:04:17 ID:5SDHQgxV] >>9 回答ありがとうございます。 しかし、その方法だと上手くいかないみたいですorz こちらで試した処理 trace("START"); attachMovie("mc", "mc1", 1); var Mc:MovieClip = _root.mc1; trace(Mc); Mc.removeMovieClip(); trace(Mc); if (Mc === undefined) { trace("undfined"); } if(Mc == ""){ trace("空白"); } trace("END"); <出力> START _level0.mc1 END 改行なのか、undefinedなのか・・・
11 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 03:45:46 ID:NTX07+iK] getInstanceAtDepth()を使うと、その深度にMCがあればMCへの参照が 無い場合はundefinedが返るので、スマートさにかけるような気がしますが これで判定するというのもひとつの手ですかね。 trace("START"); attachMovie("mc", "mc1", 1); var Mc:MovieClip = _root.mc1; trace("Mc = " + Mc); Mc.removeMovieClip(); trace("Mc = " + Mc); if (Mc == undefined) { trace("undfined"); } if (Mc == "") { trace("空白"); } if (Mc == null) { trace("null"); } if (getInstanceAtDepth(1) == undefined) { trace("mc無いよ"); } trace("END"); <出力> START mc = _level0.mc1 mc = mc無いよ END
12 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 03:47:11 ID:NTX07+iK] <出力>以下は下記に訂正します。 <出力> START Mc = _level0.mc1 Mc = mc無いよ END
13 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 06:49:10 ID:wUCJhVh1] trace(Mc instanceof MovieClip); とか。
14 名前:6 mailto:sage [2007/08/19(日) 10:09:23 ID:xj1FghBM] >>7 レスありがとうございます なんというか、マウスの反応エリアにポイントが乗ってない時には enterframeの処理を休止させるような良い方法があればいいんですけど。。。 空ボタンでマウスエリアを作って変数の受け渡しでon/offをしてみたのが ”>>4”の状態なんですけど これだと、マウスをmcに近づける速度が速すぎると 空ボタン反応→mc拡大が急になりぎこちなく見えるし mcから急に離すと、mcが縮小する前にイベント休止になってしまい、 中途半端な大きさで止まってしまう状態です。 かといって、空ボタンのサイズを大きくすると意味無いし。。。 もう脳みそ、溶けそうっす
15 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 10:13:36 ID:wUCJhVh1] updateAfterEvent();
16 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 11:54:06 ID:O2qXmHbE] 環境はMEでFlash6を使っています。 画質が低のとき、低の文字に印がつくようにしたくて「画質選択」と言うスプライトに onClipEvent (enterFrame) { if ( _quality = low ) { this.gotoAndStop(1); } if ( _quality = medium ) { this.gotoAndStop(2); } if ( _quality = high ) { this.gotoAndStop(3); } } と、ASを書いたのですが、印が低、中、高とぐるぐる回るだけです。 オプション─オプション画面.png ←この画像に低中高の文字あり 画質選択┬低.pdr フレーム1 ├中.pdr 2 └高.pdr 3 if ( _quality = low )の部分がいけないのでしょうか?
17 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 11:57:20 ID:5SDHQgxV] >>11 ,12 MCの深度を調べる方法ですか。 確かにこの方法で調べられると思うのですが、 その深度に新たに別のMCが作られるとアウトですよね。。。 すいません、質問には含めてなかったんですがやりたい事では↑がありえてしまうのでorz >>13 ありがとうございます。 色々試した結果、判定処理も負荷が余分にかかることなく実行できました。 回答いただいた方、ありがとうございました。
18 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 12:10:22 ID:5SDHQgxV] >>14 ひとまず急に離した時に大きさが中途半端なのは以下のソースでなんとかなるかと if (Iconflag == true) { // 処理 } else { this._alpha = this._xscale=this._yscale=80; } 毎回設定してるからちょっと気持ち悪いけど・・・。 急に近づけた場合はon(RollOver)の実行タイミングだから 前見たく常に判定させるかくらいしか・・・ >>16 ifの判定はif(_quality == low)とかになると思う。 後、lowが文字型で文字入ってるならいいけど、 if(_quality == "HIGH")で文字比較する。
19 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 12:35:34 ID:O2qXmHbE] >>18 御回答ありがとうございます。 ==を使えばいいと分からなかったとき if(_quality = "high") と書いてみたら画質が高に固定されたから困った
20 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 15:03:36 ID:awgMx+iC] 前スレ982,985です(BSキーのキーコード) 「キーボードショートカットを無効」にチェック入を入れるにはどうすれば良いでしょうか? Flash8では、 編集 → キーボードショートカット でそれらしきものが出ますが、そこから 先が分かりません。
21 名前:Now_loading...774KB [2007/08/19(日) 15:26:23 ID:9/7tACGE] x 1000 y 500 内のステージ上でマウス、カーソルの位置に合わせてオブジェクト(ボタンなど)のx位置が変化する、単純なマウスアクションを作りたいですけど。 x位置に制限をつけるやり方、どなたか教えてください。 例えばそのオブジェクトをステージの中央(例えば x 500)に配置して、マウス位置 x 0 (画面左ぎりぎり)の時はそのオブジェクトの x位置を400に、 反対に右いっぱい(マウス位置x1000)の時は x位置 600 という、400〜600までの制限をつけたいんですけど、どうAS書けばいいのか教えてください!
22 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 15:39:14 ID:9a4wjjql] >>21 完全に算数的な動作ですなw 1000-0:600-400 = 1000:200 = 5:1 だから、マウスの座標とオブジェクトの座標を5:1の関係 で動かせば良いのでは? つまり、マウスの移動量*0.2=オブジェクトの移動量 で、マウスの座標>1000 なら、オブジェクトの座標=オブジェクトの座標(繰り返し代入)とか
23 名前:Now_loading...774KB [2007/08/19(日) 15:53:16 ID:9/7tACGE] >>22 挑戦してみたんですが、なかなかうまく動かず↓ もしよければ具体的にどう書いたら、ちゃんと動くのか書いてもらえませんか? すみませんずうずうしくて↓
24 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:01:56 ID:yqPb+OKQ] >>23 数学の勉強をやり直すのをオススメするよ まずは制限とか考えずに、とりあえず動くように作ってみたら?
25 名前:Now_loading...774KB [2007/08/19(日) 16:04:20 ID:9/7tACGE] >>24 ありがとうがざいます。 一応動かすことはできるんですが、今の書き方のままですと 一生カーソルに付いてくるので↓ なんとか制限を付けられないかなと。 すみませんド素人で。
26 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:07:45 ID:9a4wjjql] >>25 どうしても駄目なら、FlaファイルごとUpしたら? あと、いちいちAgeなくても良い。
27 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:16:33 ID:57texW2D] >>20 ムービープレビューしたときのメニューのどこか。確か[制御]
28 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:22:27 ID:9/7tACGE] >>26 “マウスの座標とオブジェクトの座標を5:1の関係 で動かせば良いのでは” 大変失礼ですが、具体的に書いてもらえないでしょうか?
29 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:25:15 ID:vAyQy28C] 大物が来たなw
30 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:29:10 ID:dkUFB5nF] >>28 マウスの座標をとれてるなら、x座標なら (オブジェクト)._x = 400 + (マウスのx座標)/5; でいいんじゃないのー?
31 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:30:25 ID:a77o6odo] >>27 ありがとうございます。BSのキーコード確認できました。 ちなみに、これでEnterキーも確認できまた。
32 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:32:08 ID:9/7tACGE] >>30 きた.com
33 名前:Now_loading...774KB [2007/08/19(日) 16:38:53 ID:LNQddBb7] 環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) テキストフォーマットで質問です。 ある文字列の特定の区間をイタリック(斜体)にするにはどうしたら良いでしょうか? ASとしては、on (release) で text1 = "見れない、保存したい、flashを作りたいはスレ違い "; text1_fmt = new TextFormat(); //新規TextFormatを生成 text1_fmt.italic = true; text1_ins.setTextFormat(text1_fmt); //テキストインスタンスtext1_insに反映させる text1全部を斜体にすることは出来ましたが、区間(例えば5文字目から10文字目) を指定する方法が分かりません。 Selection.setFocus(text1_ins); Selection.setSelection(5, 10); を使うと、単に指定した区間がハイライトされた状態になります。 どうしたら良いでしょうか?
34 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 16:54:34 ID:wUCJhVh1] text1_ins.setTextFormat(text1_fmt, 5, 10);とか
35 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 17:03:30 ID:wUCJhVh1] あ、2.0なら引数のフォーマットとインデックス逆かも
36 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 17:12:57 ID:LNQddBb7] >>35 有り難うございます。やっぱフォーマットが後ろで、 text1_ins.setTextFormat(5, 10, text1_fmt); でOKでした。
37 名前:Now_loading...774KB [2007/08/19(日) 19:41:30 ID:LNQddBb7] 環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) while文中のif条件文で質問です。 あるテキスト文中の処理で、そのテキスト文の終端に文字位置が来たら 終了(break)するようにしたいのですが、終わりません。 ASはon (release) に fmtPo2 = 0; //文字位置パラメーター txt2_len = txt2.length-1; trace("txt2.length= "+txt2_len);//長さは632と表示 while (1) { if (fmtPo2>500) {//500で終了させるのは可能 break; } //ここに処理 fmtPo2++; } と書いて実行すると、これは正常に終了するのですが、本来の動作のために if (fmtPo2>500) → if (fmtPo2>txt2_len) //終端でbreak とすると、閉ループに入ったようになり終了しません。 どうしたら良いでしょうか?
38 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 20:39:57 ID:MLctj2zj] >>37 if文の中にはいってきてんの?
39 名前:37 mailto:sage [2007/08/19(日) 21:32:32 ID:LNQddBb7] >>38 そうです。 if (fmtPo2>500) { break; } が if (fmtPo2>txt2_len) { break; } になりました。 今まで、変数の大小で判定した際にこんなことは無かったのですが・・・
40 名前:6 mailto:sage [2007/08/19(日) 21:48:01 ID:xj1FghBM] 今日一日いろいろやってみまして空ボタンに on (rollOver) { //省略 } で変数を取得させてenterFrameを一時停止させる方法に おかげさまで目処が立ちました。 >>14 でのぎこちなく動く。という原因は収縮するmcの中にネストしていた ボタンのせいで空mcのエリアに穴が出来、そのため空mcがrolloutと 判断してenterFrameを一時停止させていたためでした。 対応として、ボタンに on (rollOver) { Iconflag = true; } を追加して、ボタンのエリアも変数flag取得エリアとすることで、 多少、スマートではないものの、CPU稼働率を80%からエリア外にマウスがある時には 4%にまで落とすことが出来ました。 いろいろとアドバイスありがとうございました。
41 名前:Now_loading...774KB mailto:sage [2007/08/19(日) 21:57:10 ID:MLctj2zj] >>39 fmtPo2>txt2_lenがtrueと評価されているなら breakされるから無限ループにはならない。
42 名前:37 mailto:sage [2007/08/19(日) 23:52:32 ID:6FwBMnZF] >>41 レス有り難うございます。原因が分かりました。 if (fmtPo2>500) → if (fmtPo2>600) → if (fmtPo2>610) → if (fmtPo2>620) → if (fmtPo2>631) とすると、if (fmtPo2>610)まではOKでそれ以降は不可でした (if (fmtPo2>615)はなんとか可)。 while文中の処理として、特定の部分を太字化していたのですが 元の文字列txt2の末尾にそれがあるもののそこで終わらず、再び 先頭の目的以外の文字列も太字化されていました。 つまり、最後を通り越して先頭に戻り、また最後を通り越して・・・ の閉ループになっていたようです。 対策として、if (fmtPo2>txt2_len-nnn) というように、txt2の最後の行 の文字列数分nnnを引いた数以上で判定させました。
43 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 06:32:33 ID:qNinbgOq] ActionScript3.0はJavaに似てる、って聞いて飛んできたのですが JavaアプレットをActionScriptにすぐ移植できるぐらいなんでしょうか? C++ → Javaアプレットへの移植ぐらいだと助かるんですが。
44 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 06:45:58 ID:Uasgpnme] JavaとAs3.0の両方に精通していれば楽に移植できるでしょう どちらも中途半端な場合は悲惨な結果になるでしょう
45 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 06:51:03 ID:qNinbgOq] >>44 ありがとうございます! 希望が出てきたので本格的にActionScript勉強してみます やっとアプレットから逃げ出せそうな予感が
46 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 11:18:59 ID:IGoV6Jt8] 単純なものなら Java→AS2でも割と簡単に移植できるよ。
47 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 11:24:09 ID:XQnOjEb+] >>45 でもJava程柔軟かって言われるとそうでもないから、かなりの確率でがっかりすると思う
48 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 22:34:23 ID:7PVd6DBD] // NetConnection オブジェクトを作成する : netConn = new NetConnection (); // ローカルストリーミング接続を作成する : netConn.connect (null); // NetStream オブジェクトを作成し、onStatus() 関数を定義する : netStream = new NetStream (netConn); // NetStream ビデオフィードを Video オブジェクトに割り当てる : this.VideoWindow_mc.my_video.attachVideo (netStream); // バッファ時間を設定する : netStream.setBufferTime (5); // netStream.onStatus = function (infoObject) { if (infoObject.code == "NetStream.Buffer.Empty") { hyouji = "データのフロー中断中"; } else if (infoObject.code == "NetStream.Buffer.Full") { hyouji = "バッファが満たされました"; } else if (infoObject.code == "NetStream.Play.Start") { hyouji = "再生開始"; } else if (infoObject.code == "NetStream.Play.Stop") { hyouji = "停止"; } else if (infoObject.code == "NetStream.Play.StreamNotFound") { hyouji = "FLV が見つかりません"; } }; このソースで「netStream」はどこに収納されているのでしょうか? ローディングバーにて onClipEvent (enterFrame) { // 読み込まれているパーセント分メーターを進める this.gotoAndStop (Math.floor (_root.netStream.bytesLoaded / _root.netStream.bytesTotal * 100)); } とかいてあるのですが、ローディングバーの反応がありません たぶん_root.netStreamのパスのせいだと思うのですが。
49 名前:Now_loading...774KB mailto:sage [2007/08/20(月) 23:41:31 ID:Uasgpnme] >>48 拾ってきたのか書籍のサンプルのかわからんが、完成されている ソースの一部分をコピペされてどうなのと言われても困る
50 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 00:16:48 ID:R9e+YG2d] ActionScriptで同じディレクトリのテキストファイルは読み込めるようですが バイナリファイルも読み込めるんでしょうか?
51 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 04:32:57 ID:R9e+YG2d] 色々調べてURLStreamでreadByte、readIntなどを使って読み込んでいけることが 分かりましたが、読み込むことができるファイルがSWF、TXT、GIFなど限られている ようなので、例えばJPGにデータを詰め込んでおく・・・とか?
52 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 06:50:15 ID:np2L7+ij] 日本語でおk
53 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 10:38:02 ID:eQMxDHhK] フレームアクションの変数を、シンボルにリンケージしたクラスから参照するのってどうやるの? _root nt=10; .as class myClass{ function myClass(){ trace(nt); }}
54 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 11:33:52 ID:7HCVWyPt] _rootに書いたなら_root.ntじゃね?
55 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 15:28:12 ID:ERTsYJLH] >>50 一番手っ取り早いのは loadVariables() を使う方法。 「Flash MX ActionScript 実践技&ウラ技大全」(C&R研究所)ナツメ社 p144 「Flash ActionScript 逆引き大全550」(ITフロンティア 著)秀和システム p132
56 名前:Now_loading...774KB mailto:sage [2007/08/21(火) 21:06:07 ID:R9e+YG2d] >>55 ありがとうございます! さっそく逆引き大全を買ってみます
57 名前:Now_loading...774KB mailto:sage [2007/08/23(木) 01:49:09 ID:eoOlJ0cq] fuse kit の勉強がしたいのですが 詳しく解説しているサイトか書籍はありませんか?
58 名前:Now_loading...774KB [2007/08/23(木) 07:06:18 ID:lEsqcOve] FLVファイルからデータベース接続って可能ですか? 外部ファイルを読み込ませてつかっていたのですが 外部ファイルの更新頻度が高いのでDB化したいのですが・・・
59 名前:Now_loading...774KB mailto:sage [2007/08/23(木) 18:12:42 ID:ItKCb7FJ] >>58 FLVはビデオファイルなので無理 swfからならphpやcgiを介せば可能
60 名前:58 [2007/08/23(木) 19:30:51 ID:lEsqcOve] あ。。swfからです。。。汁 できるのですねーありがとうございました!
61 名前:Now_loading...774KB mailto:sage [2007/08/23(木) 19:38:27 ID:xQJLCoy/] しる?
62 名前:Now_loading...774KB [2007/08/23(木) 19:50:41 ID:lEsqcOve] × 汁 ○ 汗
63 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 12:05:56 ID:uesSMLIk] onClipEvent(load){ Mouse.hide(); this.startDrag(true); } 上記をイベントハンドラメゾットで記述する場合はどうするのでしょうか? _root.pointer.load=function(){ Mouse.hide(); _root.pointer.startDrag(true); } としてみましたがダメでした・・・。
64 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 12:18:31 ID:vW2YLMXV] 質問です。 SWFからASを抽出できるソフトってあるんですか? あったら教えてください。宜しくお願いします。
65 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 12:50:03 ID:MMRc6Rmv] >>63 インスタンスにpointerってのがあるの? それなら、ターゲットパス一覧にも有りそうだが。
66 名前:Now_loading...774KB [2007/08/24(金) 15:43:52 ID:qG0MHHfC] 環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) 親MC消去で質問です。 親MC(oyaM)の中に子MC(koM)を配置して、koMを押すとoyaMが(koMも一緒に) 消えるようなASを書いていますが消えてくれません。 koMに書いたASは下の通りです。 on (release) { this._parent.removeMovieClip(); } どうしたら良いでしょうか?
67 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 15:47:17 ID:KbsGqjNP] >>66 親MCっていうのは、あらかじめタイムラインにおいてあるムービークリップ? それとも、attachMovieとかでスクリプトから追加したムービークリップ? 前者だとしたら、それだと消えないと思うよ。
68 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 15:48:58 ID:7hCp+LC2] FLASH MXを使用しています。 _rootに置いた、timeという名前とmyMCという名前のインスタンスがあります。 timeの方では onClipEvent(enterFrame){ dateobj = new Date(); } onClipEvent(enterFrame){ hour = dateobj.getHours(); } というスクリプトを書き、myMCの方では onClipEvent(load){ aaa = _root.time.hour; trace(aaa); } のようにしているのですが、trace(aaa)でundefinedとなってしまいます。 timeの中でtrace(hour)をしたら15のように出力されるのですが・・・ これは何が原因だと考えられるのでしょうか?
69 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 15:53:25 ID:q4uBGDUr] >>67 レス有り難うございます。 設定は前者の方です。ということは消えませんね・・・・ 別の方法を探します。
70 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 16:10:12 ID:7VdQ4Kxu] >>68 loadした時にはまだenterFrameのイベントは実行されてないからでは? loadをenterFrameにしてtrace()結果の2行目以降に値が表示されるなら、そうだと思う。
71 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 16:20:29 ID:1OwmfRka] >>68 onClipEvent(enterFrame){ hour = dateobj.getHours(); trace("hour= "+hour);//確認用 } 一杯出てくるけどw
72 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 16:41:32 ID:7hCp+LC2] >>70 ありがとうございます。 trace()を繰り返してみると、2行目以降に値が表示されました。 同じフレームでの実行だったので、どうやらmyMCの方が先に実行されてたようです・・・。 他のプログラミング言語でいう、Sleep()とかwait()みたいな関数って用意されてないのでしょうか?
73 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 17:37:31 ID:4NYpyoJF] >>69 depthが1以上なら消えるはず。attachしてもdepthが1以下なら消えないはず。
74 名前:69 mailto:sage [2007/08/24(金) 18:28:02 ID:MJ2AZXwL] >>73 有り難うございます。消えました。
75 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 22:05:24 ID:bFIOJMpP] サウンド(ボタンアクション)について質問です。 ボタンアクション(再生ボタン) on(release){ SoundA.stop(); SoundA = new Sound(_root); SoundA.attachSound("AAA"); SoundA.start(); } //ライブラリ内のサウンド(識別子"AAA") このScriptの書き方ですと、再生ボタンを押すとサウンドの重複は回避できますが 再生ボタンを押すたびにサウンドの頭からスタートしてしまいます。 出来れば、再生中は再生ボタンを押しても反応しない(無効)書き方にしたいんですが。 停止ボタンを押すことによって再び再生ボタンのアクションを有効にするやり方を教えてください。
76 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 23:42:50 ID:JML/IxYr] >>75 Sound.onSoundComplete = function(){ 再生するフラグ = true; }
77 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 23:53:36 ID:gMg4Xk8A] >>75 いちいちattachしないでstopとplayだけしてればいいんじゃないの。
78 名前:Now_loading...774KB mailto:sage [2007/08/24(金) 23:56:30 ID:S+yTP2Up] >>76 さっそくの回答ありがとうございました。 これをどこに記述すればいいのですか?あとフラグとはなんですか? すみません素人で。
79 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 00:08:33 ID:hE6Fefjg] >>78 真面目かつ良識的にに書くと、flagとはif文などで 勃起(準備OK) = true 萎縮(今はダメなの) = false
80 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 00:15:52 ID:fQZyWmzZ] >>78 どこに書くかはプログラム全体を見ないとわからない。
81 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 00:23:11 ID:WMOJ/8D9] >>77 ご回答ありがとうございます。 もしよろしければ、一時停止ボタンの作成を教えていただたけませんか?
82 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 02:32:03 ID:fQZyWmzZ] >>81 //再生再開 on(release){ SoundA.start(SoundA.position/1000, 0) } //停止 on(release){ SoundA.stop() }
83 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 09:27:48 ID:jah+z/np] JavaからActionScriptに移ってきてJavaに似てるって喜んでたんですが、 もしかしてActionScriptでは画面の部分更新(領域を指定して画面に転送)は できないんでしょうか? addChildの処理は重いみたいなので画面サイズのスプライトの中で処理して 部分更新なんて考えてたんですが無理なのかな・・・。
84 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 09:30:08 ID:dAihp5hQ] スプライトって何?
85 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 09:52:50 ID:Me+/y7tq] paraflaかも
86 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 09:55:58 ID:aSG+OSFh] >>83 画面サイズのBitmapData用意してそれを直接書き変えれば? というか、addChildで重いって、どんな物を作りたいの?
87 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 09:59:03 ID:5jsZChmw] >>83 ムービープレビューで右クリ、再描画領域を表示をしてみそ
88 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 10:58:46 ID:yP6Bwp/a] >>84 Sprite AS3.0で使うクラス >>83 毎回グラフィック用のSpriteを作ってaddChildしてるとか? うろ覚えだがENTER_FRAMEのイベントで Spriteの中のオブジェクト(RectとかCircle)を操作したら勝手に部分再描画になったような。
89 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 11:28:41 ID:hM6+qsn1] >>83 ビットマップの話なのかベクターなのかはっきりしてから質問した方がいい。
90 名前:Now_loading...774KB [2007/08/25(土) 14:08:12 ID:LbNq99D/] MCが、0〜30フレームまでの間でrollout時に、逆再生させたいのですがわかりません。
91 名前:83 mailto:sage [2007/08/25(土) 14:31:11 ID:jah+z/np] すみません、明らかに勉強不足のようなので出直します。 addChildでかなり時間がかかるという記事を見たので、部分更新が出来る か気になって質問してしまいました。 >>86 さんの書き込みを見て希望が出てきたので、まずはしっかり勉強します。
92 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 14:35:43 ID:dAihp5hQ] >90 mc.onRollOver = function() { this.onEnterFrame = function() { this.prevFrame(); }} これを基本にいじってみる
93 名前:Now_loading...774KB mailto:sage [2007/08/25(土) 21:38:51 ID:LRHJXgIf] >>91 希望が出てきたというか、>>87 や>>88 の言ってることが全てだとオモ レイヤー構造と、全てのオブジェクトが固有のタイムラインを持てることを知ればいい
94 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 00:11:54 ID:J2+eBKoQ] >>93 でも>>91 の言うこともなんとなく分かる。 AS3.0始めた頃は 「SpriteにDrawして書く」 「MovieClipをClassにしてattachMovieみたいに使う」 「JCanvas使ってJavaみたく描画メソッド作る」 くらいの3パターン、どれがいいのか・・・と迷ったもんだ。 今でも処理効率で言えばどれが一番なのか分からんしね。 再描画領域指定できそうな3つ目かなと思ってたりするけど・・・ 一度テストしてみようかと思った。雑談すまそ。
95 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 01:00:34 ID:y5uVf7Gu] その3つの選択肢なら使い分け用途がかなりはっきりしてるから迷うまでもない。 ビットマップなんていつでもコンバートできるんだから処理によって変換すりゃいいし。
96 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 10:59:10 ID:1nX11mtB] >>95 速度は?
97 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 16:47:37 ID:DMgdoKD0] AS3.0で導入された可変長引数を別の関数に渡すにはどうしたらいいんでしょうか? Cのように sprintf("%d: %s", 1, "リンゴ") で「1: リンゴ」を返すsprintfに可変長引数を 渡したいのですがどう渡していいのか分かりません。 現在は10個までとして以下のようにしてしまっています。 public function Trace(format:String, ... args):void { trace(sprintf(format, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9])); }
98 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 17:55:04 ID:E9ow17w7] >>97 他の関数に渡すとかいう時点で、可変長引数使う意味ないだろw
99 名前:Now_loading...774KB [2007/08/26(日) 18:56:54 ID:VDOPw4zH] Fla6 AS1.0書き出しです。 ムービークリップをドラッグして投げられ、マウスを放すとだんだん減速して止まるようなスクリプトを書いています。 そこで問題です: ものすごい速さでマウスをドラッグしてリリースするとstopDragが効かず、MCがマウスに張り付いたままになってしまう。 かといってreleaseのほかにonDragOutも付けるとものすごい速さでマウスを動かすとdragOutが反応してしまい マウスを離さなくても飛んでいってしまう。 MCに書いているスクリプトは下記です。
100 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 18:57:41 ID:VDOPw4zH] onClipEvent (load) { stat = 0; } onClipEvent (mouseMove) { updateAfterEvent(); } on (press) { stat = 0; this.startDrag(false); } on (release) { this.stopDrag(); stat = 1; x2 = _x; y2 = _y; speedx = (x2-x1); speedy = (y2-y1); } onClipEvent (enterFrame) { x1 = _x; y1 = _y; if (stat) { _x += speedx*2; _y += speedy*2; speedx = speedx*0.9; speedy = speedy*0.9; } }
101 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 18:59:13 ID:VDOPw4zH] 改行が多くてERRORになるので分割しつれいします。 statは現在の状態を示す変数で、0のときは何もしていないかドラッグ中、 1の時は惰性で飛んでいる状態を示しています。
102 名前:Now_loading...774KB mailto:sage [2007/08/26(日) 19:06:29 ID:V6E00enf] 一定間隔でマウスボタンが押されているかどうかを判定すればいいんじゃね?
103 名前:99 mailto:sage [2007/08/26(日) 20:04:06 ID:VDOPw4zH] >>102 なるほど。。。 マウスに追随する透明のMCをつくってそれがhitしてるか enterFrameで判定してやってみます。
104 名前:99 mailto:sage [2007/08/26(日) 20:28:56 ID:VDOPw4zH] むー。うまくいきません。 領域外に出たとき「マウスが押されていない」というのをどう判定すればいいものか。。。