- 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あたり
- 657 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 16:47:43 ID:tuMxnnGk]
- >>655
分散処理って具体的にどういう事? Javaかなんかとごっちゃに考えていない?
- 658 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 16:53:53 ID:O6fMLnRZ]
- >>657
たとえば、MCを100個attachする。それぞれのスレッドで動くよね。 for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw ごっちゃというか、OOPそのものなんだけどなw
- 659 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 16:56:03 ID:dqfD4AMd]
- >>655
>>forループ10秒かかるってのもすごいが、1万ループを100回に分割って、、、、 処理内容と動作スペックでは十分想定の範囲。 >>サーバー側の処理じゃないんだから、 >>クライアント側ではそんなことは普通しないでしょ。 これは、クライアントだからこそするんじゃね? 古いマシンだと、Flashに全てのリソース奪われてブラウザがフリーズ状態になる事だってある。 だからこそ細かめにループ分割しておくことで、ユーザの割り込み=キャンセル処理が可能な実装をしておくべきなのでは。
- 660 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:05:59 ID:O6fMLnRZ]
- >>659
古いマシンってどんだけ古いんだよw ってのはさておき、その例では「setInterval使えばfor文が早くなるんだぜ」な感じで あんまし表現が良くないってこと。そこがきになったんよ。
- 661 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:09:36 ID:8bxNeY9T]
- >>658
いつからムービークリップはマルチスレッドで動くようになったんですか? 私の知っているFlashではforループがどこかで回っていると、他の処理は 並行的に実行されなくなるんですが? ムービークリップの数だけスレッドができてしまったら、スレッドの切り替え にえらいコストがかかりそうですね。synchronize機構も無い言語で、 知らないうちにマルチスレッドで動いてるなんて怖い時代になったものですね、と。 for分けたほうが速いなんていってる人はここにはいねぇだろ。よく読めや
- 662 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:10:34 ID:DcvvAsvL]
- >644
NetSterem.send()またはSO.onSync() FCSのスクリプトだ。 ただし、ニコ動は一定時間ごとに更新が働いていそうだから ストリームからの同期ではなく、setIntervalで SOの状態を反映させている可能性もある(負荷軽減のため) たしかAS3からは「setDirty()」で、同期を制御することができるんだっけ? それも使ってるかも知れない。
- 663 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:12:27 ID:O6fMLnRZ]
- >>661
例が悪いって言ってるのが解らない奴がいたw
- 664 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:14:19 ID:8bxNeY9T]
- 釣られましたごめんなさい
- 665 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:18:40 ID:dqfD4AMd]
- >>658
>>for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw って時点で意味を全く理解していない事がわかったw あとFlashにスレッドに該当するものは存在しないよ。何をスレッドと思い込んでるん? >>659 最近のマシンでも1,2秒フリーズするような処理はあるだろ? それを体感させないくらいの処理に分割する。って事だ。
- 666 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:20:05 ID:dqfD4AMd]
- 穴だらのコードだけど、分割例あげとく。
var ONE_TIME_MAX:Number = 10000; var stateObj:Object = {i:0}; stateObj.intervalID = setInterval(this, "loopFunc", 10, stateObj); function loopFunc(stateObj:Object):Void { var sTime:Number = getTimer(); for (var i:Number = 0; i < ONE_TIME_MAX; i++) { stateObj.i++; } trace("loop:" + stateObj.i + " time:" + (getTimer() - sTime)); if (stateObj.i > 1000000) clearInterval(stateObj.intervalID); } ONE_TIME_MAX; の値を下げれば、 クライアント側のマシンは体感的にはフリーズしないが、全体の処理時間は多少伸びる。 ONE_TIME_MAX; の値を上げれば、 クライアント側のマシンは体感的にはフリーズするが、全体の処理時間は早くなる。 用途と想定環境で調整しろってこった。
- 667 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:29:27 ID:O6fMLnRZ]
- >>665
スレッド処理といえば解るのかな?スレッド自体プログラムで処理してるわけでしょ。 スレッドが無いじゃんというのはかまわないけど、実際そうだからしょうがないしw
- 668 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:36:43 ID:O6fMLnRZ]
- >>666
多少伸びるとか、体感的とか、、ちゃんとベンチマークしたんかいw たまたま、そんとき常駐ソフトがうごいたとかじゃねーのかw
- 669 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:44:17 ID:8bxNeY9T]
- 普通に考えればこんなアホいるわけないんだから、釣りに決まってる。
みんなも釣られるなよ!
- 670 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:46:13 ID:O6fMLnRZ]
- >>669
典型的なゆとりの捨て台詞だなw
- 671 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:46:30 ID:dqfD4AMd]
- >>668
わざわざtrace()つきでサンプルあげたんだから実行してみろよww ・C2D 2.4Ghz / 1ループ100万処理 1.2秒間で完了。処理中は他の処理全てが停止。 ・C2D 2.4Ghz / 1ループ5万処理 x 20 1.4秒間で完了。同時(擬似)に他の処理が可能 俺だったら、後者を取る。
- 672 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:51:36 ID:O6fMLnRZ]
- >>671
だからさ、そんなの意味無いっていってるじゃん。 純粋なPCで、せめて1000回試行して、、ってつか、1.4秒間に他の処理って何なんだそれ?w
- 673 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:56:17 ID:46rUnYyO]
- / ̄ ̄ ̄ \ ホジホジ
/ ― ― \ / (●) (●) \ | (__人__) | 動けばどうでもいいよ \ mj |⌒´ / 〈__ノ ノ ノ
- 674 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:57:13 ID:dqfD4AMd]
- ポカーン(゜Д゜)
純粋な技術の話が、ゆとり論点「そんなの意味ない」に変わったので、もういいやw 制作の現場でんな事言ったら、 「お前の存在のが意味ねーよw」って言われちゃうんだから(><
- 675 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 17:58:51 ID:O6fMLnRZ]
- >>674
ゆとり発言にはゆとりで返答したんだけど、、、、
- 676 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:01:42 ID:tuMxnnGk]
- 膨大にfor,while回す場合は最低限、FlashPlayerに無限ループフラグを建たせない程度に分割する必要はあると思うよ
- 677 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:01:50 ID:O6fMLnRZ]
- 厳しいようだけどホントにそうだからね
- 678 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:02:54 ID:tuMxnnGk]
- >>677
え?何が?
- 679 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:04:34 ID:8bxNeY9T]
- だから釣られんなって
- 680 名前:656 mailto:sage [2007/10/19(金) 18:24:12 ID:fpwmazCs]
- すいません。分かる方いたら>>656お願いします。
- 681 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:31:22 ID:EXfWcKY4]
- >>680
それだけじゃわからんから、flaとHTMLをUpしたら?
- 682 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:44:27 ID:8bxNeY9T]
- >>680
その「30行くらいの処理」に問題があるんじゃないのかな? trace(a);だけで実験したけど何の問題も起きんよ。
- 683 名前:Now_loading...774KB mailto:sage [2007/10/19(金) 18:54:49 ID:bT3V+drs]
- だよなあ。他の言語ならともかく、Flashはループでプレーヤーからブレーキかけられるからなあ。
良く使い慣れてる人ほど、分割する仕組みを考えるわな、常識的に考えて。 脳内の人はどうかしらんけど。
- 684 名前:656 mailto:sage [2007/10/19(金) 19:05:16 ID:fpwmazCs]
- >>681-682
返信ありがとうございます。 仕事でクライアント企業のために作っているホームページなのでうpする事は出来ないのですが、 >>682の発言から、テストでLocalConnectionを実験するためだけのSWFを作って実行してみたところ、 何の問題もなく何回でも通信出来ました。 「30行くらいの処理」の中に外部テキストファイルを読みに行ったり、onEnterFrameを作ったりと色々やってるので、 その中の何処に問題があるのか自分なりにテストして調べてみたいと思います。 すいません。ありがとうございました。
- 685 名前:Now_loading...774KB mailto:sage [2007/10/20(土) 13:41:10 ID:imkaZe3i]
- ttp://www.kisekae.jp/free/makeup01/index.html
ここの壁紙を作るゲームのようなことをやりたいのですが、 どのように作ってるのかわかりません。 無数の壁紙を用意してるようでもなさそうですし、サーバーで壁紙を 作ってるとは思いますが、どうすればできますか? winXP FLASH8です
- 686 名前:Now_loading...774KB [2007/10/20(土) 13:49:05 ID:2Mx4Dfp7]
- 質問です。
Flashを表示した時に、はじめからテキストボックスにキャレットを表示させて おきたいのですが、どうすれば良いでしょうか。私で調べたところ、 Selection.setFocusでフォーカスを与えられるようですが、 1フレーム目にSelection.setFocus("_root.textFild1");と記述しても キャレットは表示されません。。(文字を打ち込むことだけは出来るようですが) 一般的な方法を教えていただけると助かります。
- 687 名前:Now_loading...774KB [2007/10/20(土) 23:20:33 ID:+I8Fy8oj]
- class Book1 {
var vol:Number = 20; class Book2 { function Book2() { trace(vol); var titleS:Book1 = new Book1(); var titleJ:Book2 = new Book2(); クラスBook2でBook1のvol変数を参照したい場合どうすればいいのでしょうか?読み込みテストでtraceをしています 調べたらpublicを付ければ他のクラスからもアクセス可能とあって、 実際にpublic var vol:Number = 100としても「'vol' という名前のプロパティはありません。」とエラー ただ試しにとtrace(Book1.vol);としてみたら「参照されているプロパティには、静的属性がありません。」とエラーが出ます どうすれば読み込む事ができるのでしょうか?AS2.0です
- 688 名前:Now_loading...774KB mailto:sage [2007/10/20(土) 23:35:43 ID:/VMUh1e8]
- public function getVol():Number{
return vol; } でどうだ
- 689 名前:Now_loading...774KB mailto:sage [2007/10/20(土) 23:36:14 ID:0hjIJdd/]
- >>687
そこはBook1.volじゃなくて、titleS.volじゃない? Book1、Book2てのはあくまでクラスという殻の名前で、 そのクラスの殻をかぶった実体はtitleS、titleJという クラス変数なのだから。 変数の中身はBook2中のtrace(vol);のとこを trace(titleS.vol)にすれば多分いける(クラスの宣言の仕方・位置によってはできないけど)。
- 690 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 01:10:29 ID:z6nWa6iZ]
- >>687
場合によってはclass Book2 extends Book1 として継承すべきところかも知れないし、 public static var vol:Number = 20;と静的メンバにすべきところかも知れないし、 Book2のコンストラクタでfunction Book2(b1:Book1)として持たせておいてb1.volと参照べきかも知れない。 正解は687しか分からない。
- 691 名前:Now_loading...774KB [2007/10/21(日) 14:45:22 ID:ac0oRU+C]
- ものすごい初歩的な質問かもしれんが
ステージに自分でMCを配置して そのMCのリスナーをドキュメントクラス(main.as)から登録ってどうやるんですか? var MC_A:MovieClip; MC_A.addEventListener( MouseEvent.MOUSE_DOWN, ふぁんくしょん ); エラー 「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」 みたいな事になります。 ちなみに、Windows CS3のAS3.0です。 ご教授お願いします。
- 692 名前:Now_loading...774KB [2007/10/21(日) 15:01:11 ID:B82okr/G]
- FLash Lite1.1でボタン機能を無効にする方法を教えてください。
AS2.0だと button.enabled =false; でボタン機能がむこうになりますが、こんな感じでボタンを作動させない方法は LITE1.1にありますか? _visibleで非表示にもできませんよね?
- 693 名前:Now_loading...774KB [2007/10/21(日) 15:15:13 ID:wjACHB4b]
- 外部ファイルの読み込みがうまくいきません。
FLASHで写真アルバムのようなページを制作しています。 読み込む方のphoto.swfを単独で開いたらうまくいくのですが、 親のmain.swfにload_□□mc.loadMovie("photo.swf"); でphoto.swfを読み込ませると最初のstop();まで読み込み、 次の写真へは送りボタンを押しても機能しません。 これはどういったことが問題なのでしょうか。 分かる方ぜひともお教えください。お願いします。
- 694 名前:Now_loading...774KB [2007/10/21(日) 15:20:45 ID:ac0oRU+C]
- >>693
たぶん、photo.swfのASに_root何チャラって書いてないか? mainの中のphotoだからRootはmain.swfになるのよ っで、AS2.0だよね?
- 695 名前:Now_loading...774KB [2007/10/21(日) 15:28:20 ID:ac0oRU+C]
- >>693
ちなみに、Rootの設定がAS内でできたような。。。 すまん、わすれた
- 696 名前:Now_loading...774KB [2007/10/21(日) 15:33:41 ID:wjACHB4b]
- >>694
ご回答ありがとうございます。 最近はじめたものであまりAS1.0とAS2.0の違いも分からないのですが 多分2.0です。 photo.swfの中のボタンに_root記述してありました。 photo.swfのシーン1のタイムラインに飛ばしたいのですが _rootの代わりに何と記述すれば良いでしょうか?
- 697 名前:Now_loading...774KB [2007/10/21(日) 15:37:19 ID:ac0oRU+C]
- this.gotoAndPlay( )
だな
- 698 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 15:40:42 ID:e47dlEKS]
- >>691
ドキュメントクラスってのがよくわからんが、オーサイズ時にインスタンス名付ければ そのままそれが使えるけど。 >>692 FlashLite1.1はas1レベルだっけ?ヘルプ見て無ければ無いのでしょう。 >>694 パス指定が合ってるかどうか確認。_lockrootあたりをヘルプで調べてみ。
- 699 名前:Now_loading...774KB [2007/10/21(日) 15:43:41 ID:ac0oRU+C]
- >>698
あ、ほんまや。。。 ありがとう。 いちいち、宣言しなくてもいいですね。orz
- 700 名前:Now_loading...774KB [2007/10/21(日) 16:10:33 ID:wjACHB4b]
- 693です。
みなさまありがとうございました! _lockrootで解決いたしました。
- 701 名前:Now_loading...774KB [2007/10/21(日) 16:20:09 ID:wjACHB4b]
- もうひとつ質問です。
親swfからloadMovieで読み込ませている外部ファイルswfの 任意のタイムライン(ラベルをつけてある)に親swfからリンクできますか?
- 702 名前:Now_loading...774KB [2007/10/21(日) 16:29:04 ID:ac0oRU+C]
- インスタンス名.gotoAndPlay("ラベル名")
でいけんじゃね? 親SWFの子SWFにちゃんとインスタンス名を指定してあげること
- 703 名前:Now_loading...774KB [2007/10/21(日) 16:48:04 ID:wjACHB4b]
- >>702
ご回答ありがとうございます。 親swfに配置してあるボタンに on (release) { _root.load_shoppingmc.gotoAndPlay("tee"); } と記述したのですが、やはり飛びません。う〜む
- 704 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 17:06:24 ID:jBT9Iizq]
- >>703
親swfのバージョンと、子swfのバージョンは? あと、trace(_root.load_shoppingmc) でちゃんと配置されてるか試してみた?
- 705 名前:Now_loading...774KB [2007/10/21(日) 17:30:21 ID:wjACHB4b]
- ご回答ありがとうございます。
パブリッシュの設定はそろえてあります。 trace(_root.load_shoppingmc) はどこに記述すれば良いのでしょうか?
- 706 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 17:40:45 ID:jBT9Iizq]
- >>705
on(release) に
- 707 名前:Now_loading...774KB [2007/10/21(日) 17:43:49 ID:wjACHB4b]
- 出力画面にはundefinedとでました。
- 708 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 17:48:31 ID:jBT9Iizq]
- パスが間違ってる可能性があるので、見てみてください
- 709 名前:Now_loading...774KB [2007/10/21(日) 17:59:45 ID:ac0oRU+C]
- load_shoppingmcはインスタンス名ですか?
load_shoppingmcを選択して左下のプロパティに「load_shoppingmc」ってでてますか?
- 710 名前:Now_loading...774KB [2007/10/21(日) 18:47:14 ID:QezD4BGt]
- setIntervalの話が出てたんでついでに質問。
www.adobe.com/cfusion/showcase/index.cfm?event=casestudyprint&casestudyid=89534&loc=ja ↑の、 >切り替えタイミング単純にをsetIntervalアクションで制御すると、時計と映像がずれる場合があり、 >時間と時計の動きを正確に合わせるという所も注意を要しました。 って具体的にどうやってのかね? 俺も1秒間隔で実行するスクリプトを組んだんだがたまにずれてくんのな。
- 711 名前:Now_loading...774KB [2007/10/21(日) 18:55:56 ID:ac0oRU+C]
- setIntervalで実行されるファンクション内で時間を取得してるんでは?
setIntervalでコンマ単位で実行 その中のファンクション内で1秒たったら実行 みたいな感じかな〜 なんか、力技っぽいけど
- 712 名前:Now_loading...774KB [2007/10/21(日) 19:04:09 ID:ac0oRU+C]
- またまた質問で申し訳ないんですが。
Flash.swf?a=12 みたいな感じでGETで渡した値ってメインフレームの「a」に入るけど AS3.0のドキュメントクラスを使って作ってるFlashの場合どうやって取得するの? 一応、自分の書いたAS張っておきます。 ■ドキュメントクラス package { public class main extends MovieClip { var a:Number; function main(){ trace( a ); } } } ■メインフレームアクション なし ■結果 null orz...
- 713 名前:Now_loading...774KB [2007/10/21(日) 19:18:51 ID:wjACHB4b]
- >709
load_shoppingmcはインスタンス名です。 プロパティのところに表示されてます。
- 714 名前:Now_loading...774KB [2007/10/21(日) 20:01:03 ID:ac0oRU+C]
- >>713
すまん。わからん。 とりあえず、trace(_root.load_shoppingmc)でundefinedって出たなら そんなインスタンスねえよってことだから アクションスクリプト書くところの上部分「ターゲットパスを挿入」でみてみたら?
- 715 名前:Now_loading...774KB [2007/10/21(日) 20:18:35 ID:wjACHB4b]
- >>714
ありがとうございます! なんとかやってみます。
- 716 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 20:28:32 ID:zqyeyAul]
- >>712
trace(LoaderInfo(loaderInfo).parameters.a); かな? >>710 >>711の言う通り。setIntervelは結構いい加減。FPSによってもズレるから 時間とかカウントダウンは都度、PCの時間をチェックした結果を使った方がよさげ。
- 717 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 20:45:31 ID:sgZ6F/K5]
- >>710
>>711 >>716 getTimer(); が楽だぜ。
- 718 名前:Now_loading...774KB [2007/10/21(日) 21:09:08 ID:ac0oRU+C]
- >>716
おお!! 助かる!! ありがとう!
- 719 名前:Now_loading...774KB [2007/10/21(日) 23:56:42 ID:ac0oRU+C]
- またまたまた質問で申し訳ない
現在動的にPOSTデータを生成してるんですがうまく動きません。 ご教授お願いします。 動作環境:AS3.0 package { import flash.net.*; public class main extends MovieClip { var PostRequest:URLRequest = new URLRequest(); public function main() { test1(); } function test1(){ for ( var N:Number in PostArray ){ myCString = "c"+N+ "_"; PostStr = myCString + "test"; PostRequest[PostStr] = N; } } } } 結果----- flash.net.URLRequest のプロパティ c0_test を作成できません。 わかりくいソースですが、よろしくお願いします。
- 720 名前:Now_loading...774KB [2007/10/22(月) 00:03:15 ID:LJ9icd3x]
- 環境 OSはWinXP-Pro,ソフトはFlash8-Pro
root(ステージ)上のマウスの位置を把握したいのですが出来ません。ASはrootの フレームのイベントとして下を書いています。 this.mouseDown = function() { trace("mouseX= "+_root._xmouse); }; traceが表示されません。どこが駄目なのでしょうか?
- 721 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 00:06:10 ID:qfpgHYn7]
- >>720
this.onMouseDown = function() { trace("mouseX= "+_root._xmouse); };
- 722 名前:720 mailto:sage [2007/10/22(月) 00:28:41 ID:LJ9icd3x]
- >>721
ああ、そうだった。 さんきゅう。
- 723 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 01:20:02 ID:eOPDElNt]
- >>719
URLRequestはdynamicじゃない
- 724 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 01:54:34 ID:8gzli1sS]
- >>17
回答になるURLだけ。 livedocs.adobe.com/flash/9.0_jp/main/00000846.html
- 725 名前:724誤爆 mailto:sage [2007/10/22(月) 01:57:03 ID:8gzli1sS]
- おかしいな、スレタイ確認してから書き込んだのに(ノ∀`)
- 726 名前:Now_loading...774KB [2007/10/22(月) 02:38:42 ID:+xTs4Kq3]
- >>723
え!! そうなんですか!? でも、どうやって動的な変数を作るんですか?
- 727 名前:Now_loading...774KB [2007/10/22(月) 03:15:52 ID:+xTs4Kq3]
- >>726
URLVariablesですね。。。 自己解決しました。 >>723 ありがとうございました。
- 728 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 14:55:07 ID:J3FeIoLe]
- >>711>>716>>717
なるほど時計と同期とればいいのか、 当たり前の話だけど目から鱗だった。 ありがとう。
- 729 名前:Now_loading...774KB [2007/10/22(月) 16:09:21 ID:MLLh9Prc]
- 間違って 兆速で答えるスレ に書いてしまったのですがこちらにもポストさせて頂きます、申し訳ありません。
AS2におけるMovieClipLoaderについて質問です。 例えば、 _root -testMC -loadingMC という構成でMCを2個置くとします。 testMCには単純に矩形を描画して、とりあえず試しに this.onEnterFrame = function(){ this._rotation += 10; } とか書いて回しとくとします。 で、loadingMC内でMovieClipLoaderを使い、 jpgやswfを何かのタイミングで読み込むと、 ファイルのロード中(onLoadProgressが呼ばれている間)に testMCの回転も止まってしまうのですが、自分の環境だけでしょうか? ロードが終わればtestMCの回転も再開します。 onLoadProgress以外の処理が全てストップしているように見えるのですが… 読み込むswfやjpgのファイルサイズが小さい場合には気にならないのですが、 大きくなると止まっているのがよく分かる状態です…。 どなたかこの対処法などご存知ないでしょうか…?
- 730 名前:Now_loading...774KB [2007/10/22(月) 16:25:01 ID:gP/TdxM1]
- 環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
マウスポインタの動きについて質問です。 root内あるいはMC内でオリジナルデザインのマウスポインタを動かす際に マウス(分解能は変えない)を20cmくらい動かしてもroot内あるいはMC内に 収めるにはどういう方法が考えられますでしょうか? 当方で試した仕組みは、オリジナルデザインのマウスポインタMCをnewMouseM として、このイベントを(すいませんAS全部書きます) onClipEvent (load) { Mouse.hide(); moveRate = 50; //比率を50%に } onClipEvent (mouseMove) { this._x = 0.01*_root._xmouse*moveRate; this._y = 0.01*_root._ymouse*moveRate; //moveRateが100の場合、動きが一致する updateAfterEvent(); } としました。これで一応は本物のマウスの半分の動きが実現できますが、本物 のマウスポインタがディスプレイ(15インチ,10024*768)の端に到達すると動か なくなります。 マウス自体の分解能は変えれば一番手早いのですが、同じPCを他の用途にも 使うのでマウスの設定はなるべく避けたいです。なお、マウスポインタ自体の座標 を変えようと _root._xmouse = _root._xmouse/10; などとしましたが駄目でした。 アドバイスを願います。
- 731 名前:Now_loading...774KB [2007/10/22(月) 18:08:55 ID:vxixU9N4]
- Flash CS3Pro WinXPsp2 を使ってます。ActionScript3について質問します。
MovieClipを順番に並べて各MCにアクセスしたいんですが、 AS2でやってた方法が使えず困ってます。 var cnt:int; var mc:MovieClip; for (cnt=0; cnt<3; cnt++) { mc= new bt(); mc.name = "bt"+cnt; mc.y= cnt * 30; container.addChild(mc); } これでリンケージされたムービーbtを配置することは出来たのです。 しかし、各MCにアクセスすることが出来ません。 例えば2個目のmcをvisible=falseにしたりとか、mc.visible=false でも bt1.visible=falseでもダメでした。 AS2の頃はmc[cnt] = new bt();みたいにして、 オブジェクト名を付けられた気がするんですが、AS3ではどうすればいいのですか?
- 732 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 18:19:03 ID:qMJFNePx]
- >>729
そもそも、フレームレートはどの位? 速すぎるのは駄目だから、1fpsでは試した?
- 733 名前:730 mailto:sage [2007/10/22(月) 18:47:05 ID:qMJFNePx]
- (訂正)
マウスの分解能は通常のマウスでは調整できないですね。 失礼しました。 代わりに コンパネ → マウス → マウスポインタ → ポインタの速度を選択する で調整できますが、さっき書いた通り、他の用途を考えるとこれは避けたいです。
- 734 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 18:54:58 ID:9lhBhZOc]
- >731
俺はAS2しかわかんないから違うことを言うかも知れないけど、例えば mc[i]=this.attachMovie("myMC","mc_"+i,i); としたとき、参照名である mc[i] と、インスタンス名である ["mc_"+i] は 別物だと言うことは理解できるよね? きみはどうも、「オブジェクト名」という言葉に、参照名とインスタンス名の 両方をごっちゃにして意味を当てているように思える。 >731のソースで、変数mcに3回、別の意味を与えているけれど ソレだと最後の1つしか、意味を成さなくないのかな?
- 735 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 19:03:04 ID:/GsMCeXm]
- >>731
cs3でもできるcontainer["bt1"].visible=false
- 736 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 19:52:20 ID:3U1uYhkA]
- >>731
735のでもいいしgetChildByName使ってもいいし配列に入れてもいいしいろいろ やり方があるよ。個人的にはgetChildByNameを結構使う。
- 737 名前:729 [2007/10/22(月) 20:00:25 ID:MLLh9Prc]
- >>732
試してみたのですが… 他にEnterFrameなりTweenなりのアニメーションが 動いている状態で外部読み込みをしたいので、結局1fpsにしてしまうと意味が無いというか… 1fpsの間にファイル読み込みが終わってしまって結局現象の確認もしづらいので。 ちなみに初めは30fpsでやっていました。 読み込むファイルの、描画的負荷が高い方が止まる率が高いように思います…。 サイズの大きいjpgであったり、それを配置してあるswfだったり。 でも、それほどサイズの大きくないjpgでも1瞬カクっとなる事もあり、、 loadMovieではこんな風になった記憶は無かったのですが…
- 738 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 20:40:00 ID:w//pZjr4]
- >>737
10°単位なら力技で36フレームに分割するという手もある。
- 739 名前:Now_loading...774KB mailto:sage [2007/10/22(月) 20:58:59 ID:LM6crXUA]
- >>737
onLoadProgressで、ループ回してたりとか何か複雑な描画をさせてたりとかはないの? onLoadProgressリスナーを使わなくても、描画が止まるの?
- 740 名前:729 [2007/10/22(月) 21:28:41 ID:MLLh9Prc]
- >>738
回転させているMCは確認用に置いてあるだけで…回転しているMCはそれほど重要ではないんです、、申し訳ありません… >>739 以下にソースを書きます。onLoadProgressにはtraceだけ入っていましたがコメントアウトしても変わりませんでした。 var mcLoader:MovieClipLoader = new MovieClipLoader(); var objListener:Object = new Object(); objListener.onLoadStart = function(target_mc:MovieClip){ target_mc._visible = false; } objListener.onLoadProgress = function(target_mc:MovieClip, nLoadedBytes:Number, nTotalBytes:Number){ //trace(Math.floor(nLoadedBytes/nTotalBytes*100)); } objListener.onLoadInit = function(target_mc:MovieClip){ target_mc._visible = true; } mcLoader.addListener(objListener); function loadingStart(){ mcLoader.loadClip("sample.jpg", MCLoader_target); } で、外からloadingStart();を呼ぶと、onLoadInitの部分に来るまでストップしてしまう状態です。 テストで読み込んでいるsample.jpgは1MBちょっとありますが、それほどパフォーマンスに影響が出るサイズとも思えません、、。 というか737でも書いたのですが、処理が止まるタイミングがブラウザによって違うような挙動が見受けられました…。OSはMac OS Xで、 Safari→onLoadInitのtarget_mc._visible = true;のタイミングで1瞬止まる Firefox(最新)→ロード開始〜target_mc._visible = true;の間止まっている これはFlashというよりブラウザのパフォーマンス(かwebエンジン)がFlash Playerの挙動に影響してると考えた方が良いのでしょうか
- 741 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 00:06:45 ID:bmsGLdDw]
- >>734-736
ありがとう。 >>734 AS2ならattachMovieでなんとか出来るのは知ってるんだけど、 それをAS3に書き直そうとして混乱してる状態です。 >>735-736 まだAS3は全然馴染めてないので、教えてもらった方法で色々試してみます。
- 742 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 05:43:55 ID:rIGy1SeP]
- 連想配列を列挙するにはどうすればいいのか。
this._hash = new Object(); _hashに色々登録 for(var key in this._hash) { } とやっても列挙されない。
- 743 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 06:41:52 ID:4gII7L/z]
- var hash:Object = new Object();
hash.s1 = "ABC"; hash.s2 = "DEF"; hash.s3 = "GHI"; for(var key in hash) { trace(key + ":"+hash[key]); }
- 744 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 06:46:04 ID:rIGy1SeP]
- _hash[name]
と参照したいんだよね。
- 745 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 06:53:34 ID:4gII7L/z]
- >>744
列挙って言ってるじゃんw trace(hash["s1"]); あとcじゃないんだから_つけるのやめれ。
- 746 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 07:47:15 ID:rIGy1SeP]
- 意味が分からん。
traceしてどうすんだよ。
- 747 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 09:45:12 ID:kcpsvox1]
- なんでtraceに目がいっちゃうんだろうね、この子は
- 748 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 10:15:55 ID:vmkXA1Uz]
- >>744
>>745に補足すると、要素名を引用符を付けない形で 指定したい場合は、 _hash.name と記述する。 foo["bar"] と foo.bar は同じ意味。
- 749 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 11:04:06 ID:rIGy1SeP]
- name = "bar";
_hash[name] とやりてぇんだよ。 _hash.name はただのプロパティnameじゃねぇか。
- 750 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 11:19:28 ID:vmkXA1Uz]
- >>749
そのとおり。じつはASに「連想配列」なんてものはないんだ。 オブジェクトのプロパティを代用しているに過ぎない。 だからそのルールに従ってくれ。
- 751 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 11:43:52 ID:lvJbSOUs]
- 3.0ならfor each in使うかdictionaryクラス使えばいいよ
- 752 名前:731 [2007/10/23(火) 11:51:22 ID:1xuCy3hW]
- たびたび、すまんけど教えてください。
for (cnt=0; cnt<5; cnt++) { var mc[cnt]:MovieClip = new MovieClip(); } という感じをAS3にするにはどうしたらいいの? mc0〜mc5を作りたいだけなのに…
- 753 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 13:12:12 ID:lvJbSOUs]
- >>752
いまいちわからんけど var mc:Array = new Array() for(cnt=0;cnt<5;cnt++){ mc[cnt] = new MovieClip(); addChild(mc[cnt]); mc[cnt].name = "mc" + cnt; } trace(mc[0].name) ってことかな?それとも var _mc:MovieClip for(cnt=0;cnt<5;cnt++){ _mc = new MovieClip() _mc.name="mc"+cnt; addChild(_mc); } trace(getChildByName("mc0").name); ってことかな?
- 754 名前:731 [2007/10/23(火) 13:28:46 ID:1xuCy3hW]
- >>753
ありがとう。 最初ので出来ました。 var mc:Array = new Array(); と var mc:Array; の違いがいまいち理解出来てない。
- 755 名前:Now_loading...774KB [2007/10/23(火) 13:34:15 ID:8DpBRXr5]
- >>754
変数宣言しているだけか、変数宣言と同時に初期化しているだけの違い。
- 756 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 13:46:06 ID:4gII7L/z]
- 初期化でなくインスタンス作成だべ
- 757 名前:Now_loading...774KB mailto:sage [2007/10/23(火) 17:24:49 ID:SA2GJuLv]
- //Etude.as
package{ import mx.core.*; import mx.containers.*; public class Etude extends Application{ public function Etude(){ addToCreationQueue( new Panel()); }}} これ実行時にエラーになるんですが何ででしょうか?
|

|