1 名前:Now_loading...774KB mailto:sage [2011/12/25(日) 02:37:34.48 ID:APghLI2o] AcitonScriptのことなら 初歩的な質問でもなんでもおk 見れない、保存したい、flashを作りたいはスレ違い 下記の関連スレ、超基本的な質問へ。 ●質問する時は自分の環境を書く(AS2,AS3の別も) ●質問はものすごい勢いじゃなくて結構 ●できるだけコードも示す ●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く 前スレ ActionScript 誰かが物凄い勢いで解答するスレ29 toro.2ch.net/test/read.cgi/swf/1309349827/ 関連スレ Flashの超基本的な質問はここでしろ! part42 hibari.2ch.net/test/read.cgi/swf/1305783143/ ※初心者は↑こちら推奨 ActionScript ライブラリ総合 hibari.2ch.net/test/read.cgi/swf/1308658905/
351 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 14:25:53.38 ID:meU+M1II] 型が不定なのがクソキモいって人もいるんじゃないの? 君がVector可変で使うのがクソキモくて理解できないのと同じで。
352 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 14:28:00.20 ID:meU+M1II] 目的が速度だったらpushしてるのはアホだろうけど、必要感じてないらしいからね。
353 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 14:48:40.70 ID:xEPG2eul] pushって遅くなんの? どれくらい?
354 名前:Now_loading...774KB [2012/02/22(水) 15:00:06.86 ID:xEPG2eul] 2乗するのにビット演算の方が速い、みたいな「根本原理」的な話?
355 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 15:01:45.08 ID:xEPG2eul] ageてスマン
356 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 15:16:44.77 ID:xEPG2eul] 何度もスマン。自分で測ってみたから質問下げる
357 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 15:45:42.66 ID:979q3B4N] >>351 ,352 そういう人も居るだろうけどね、Arrayってもともとそういうものだよ?? 型固定じゃないとイヤなのに、intとかプリミティブ型で宣言したのに、Booleanをpush出来てしまう 暗黙的型変換が許容できるのがクソキモイ。 必要感じてないのにVector使うのは俺には理解できない。 pushで最大サイズの拡張が行われたら、Arrayより遅くなるのに。 >>353 いまテストしてみた。100万の配列アクセスの場合。 最悪Arrayの4倍遅い 固定長(Fixed)の20倍 wonderfl.net/c/aIfc
358 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 15:48:06.30 ID:979q3B4N] テストしたんか…俺の20分返せ!w
359 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 18:19:47.27 ID:VgwNTH2O] 俺のいる板だと会話がすぐ煽り合いになるが マは平和でいいわ
360 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 18:34:28.92 ID:3hHo2Jqu] >>350 型決定による速度向上と補完による効率があるからぜんぜんちがうよ pushで使おうがArrayのpushより速いんだし意味ないわけないじゃない
361 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 18:38:48.95 ID:3hHo2Jqu] ああArrayのpushより遅い場合があるのね 失礼 俺は補完(だいじ まあArrayでもできなくはないけど)と型決定があるから常にVectorを押すよ push使おうが遅くなるのは出し入れする時だけなんだから、読むときはArrayより速いわけじゃん ネイティブでArray使わされる場合(filterなど)以外はVectorつかうよん
362 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 19:05:13.98 ID:8QtLEpE+] push遅いのか pushみたいな感じので一番速いのなんだろう
363 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 21:37:42.80 ID:979q3B4N] >>361 遅い場合があるんじゃなくて、ほとんどの場合遅いのよ。 >push使おうが遅くなるのは出し入れする時だけなんだから、読むときはArrayより速いわけじゃん なんか矛盾してるが。 >読むときはArrayより速いわけじゃん は間違い無い。ただ、pop,shiftはナシ。 あと、固定長Vectorであれば、書き込みも読込とさほど差が無い。 だからVectorを使う時は>>292 と書いわけだが。 >俺は補完(だいじ まあArrayでもできなくはないけど)と型決定があるから常にVectorを押すよ >ネイティブでArray使わされる場合(filterなど)以外はVectorつかうよん 型決定はどうでも良い。入れる型が異なることがほとんど無いからね。 しかし、補完があるのが大きいってのはわかる。 それでも、キューの様なpush,popを多用する動作においては採用しないし、 何回もアクセスするような場合は変数に取り出すだろう。(foreachであれば最初からでてるわけだし。) 変数に出してやれば補完の問題も解決するし、Arrayだと基本的なテクニックのひとつだしね。 しつこいとよく言われるが、>>296 みたいに添字で書くことなんか普通のことなんだけど、おかしい?
364 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 21:56:18.99 ID:3hHo2Jqu] >>363 添字が基本なことに突っ込んでるんじゃないよ pushで使わざるを得ない時に時にVectorを使うのはアホっていってるのに対して言ってるの それから型決定って型が決定してることによるアクセス速度の向上のこと言ってるのよ、どうでもよくないだろ 矛盾してないよ 出し(pop)入れ(push)するときはArrayより遅いかもしれないけど、readする時は確実に速いので使い方如何では一概には言えないでしょ、って意味
365 名前:Now_loading...774KB mailto:sage [2012/02/22(水) 23:29:59.37 ID:979q3B4N] >>364 えー。Vectorが密な配列、連続したメモリ領域だから早いわけで、 その連続したメモリ領域を確保するためにジェネリクスの構文をわざわざ拡張したんじゃないか。 順序が逆だと思うが。 もし今後拡張でArrayにもジェネリクスが採用されたりした場合、 Arrayも型固定だから速いってことになるよ? >出し(pop)入れ(push)するときはArrayより遅いかもしれないけど、readする時は確実に速いので使い方如何では一概には言えないでしょ、って意味 出すがpopとは思って無かった。readと思った。 >pushで使わざるを得ない時に時にVectorを使うのはアホっていってるのに対して言ってるの だれがアホって言ったの? だいたい>>292 でpush使う時に言及しているわけだし、 >Vectorを使いたい時点で固定長を意識した方が良い。 っていうのが何で問題なの? 固定長にするだけでパフォーマンスは確実にあがるわけだよ。 その分気を付けないといけない事が増えるだろうけど。 それを嫌って使わないことを選択することは排除してないけどな?
366 名前:Now_loading...774KB [2012/02/23(木) 04:26:25.09 ID:hlXk4FcN] 調べてみたら固定長であろうが、添字であろうが、pushであろうが 一度領域を確保させたらその後の添字でのアクセス速度は大体同じだった。 初期化時間がほんの少し変わる程度のレベル。 使い回しで運用するなら何も変わらない。 好みでいいよホント。
367 名前:Now_loading...774KB [2012/02/23(木) 22:20:50.15 ID:bCZii22t] 初心者です。 例えばAボタンを押して、 ムービークリップをArrayに格納したarr1を表示するときに A.addEventListener(MouseEvent.CLICK,Aclick); function Aclick(event:MouseEvent):void { for each(var ARR:Object in arr1) { ARR.visible = true;} } と記述した場合、 この「ARR」はまた使えるのでしょうか? 別のスプリクトでarr1を押してムービークリップBを表示するときに for each(var ARR2:Object in arr1){ ARR2.addEventListener(MouseEvent.CLICK,ARR2click); function ARR2click(event:MouseEvent):void { B.visible = true;} } 最初の記述のfor each(var ARR:Object in arr1) { 2番目の記述のfor each(var ARR2:Object in arr1){ のように 毎回var のあとの変数名はかえなければならないのでしょうか? 基本的な質問ですいません。
368 名前:Now_loading...774KB mailto:sage [2012/02/23(木) 23:17:12.04 ID:4zJ2MKxN] 同じ関数内ならまた使える 他で使いたいなら別の変数で受けておくんだけど >別のスクリプト ってなんやねん クラスファイルならメンバ変数用意して入れとけば同クラス内のどこからでも参照できる
369 名前:Now_loading...774KB [2012/02/24(金) 00:51:13.38 ID:lFddvvqM] >他で使いたいなら別の変数で受けておくんだけど 具体的にどうやるのですか?
370 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 00:59:51.37 ID:B98DNoNH] ARR.visibleとか頭痛くなるからやめて(>_<)
371 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 01:02:16.44 ID:sjrQC//F] 大文字はないな
372 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 01:07:00.75 ID:sjrQC//F] 警告無視すれば、同じ変数名使っても問題なく動くよ まあコードとしては問題あるから警告出るんだけど あるいはArray#forEachとか使えば警告出なく出来るかな
373 名前:Now_loading...774KB [2012/02/24(金) 01:49:25.81 ID:mgywVX5W] スレ違いと分かってながら、人が今見てそうと思って皆にヘルプ>< 概要:背景に使う画像が2種あり、それぞれをレイヤーに分けている。 AVIで書き出すと、レイヤー1を表示、レイヤー2を非表示の場合は 綺麗に書きだせる。 レイヤー2を表示、レイヤー1を非表示にして書き出すと ムービー全体が荒くなる。文字やそのほかのおオブジェクト全て。 前者と後者の書き出し方に全く違いは無いはずなのに ○一日かけて書き出ししても一向に改善策が分からない。 教えてエロい人><
374 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 02:12:23.40 ID:O3+Z2z4C] >>373 スレチ まで読んだ
375 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 08:26:17.63 ID:qyPhU7PI] AS3のFlash5.5で質問です。 ステージ上にsquareというムービークリップがあります。 そのシンボルはプロパティのライブラリ欄でASリンケージをsquareClassという名前で設定しています。 以下のコードでsquare0〜square9のインスタンスを複製したいのです。 for ( var i:int = 0; i < 10; i++ ) { var name_str:String = "square"+i; var myClass:squareClass = squareClass(getDefinitionByName(name_str)); addChild(myClass); } ところが、以下のようなエラーが出てしまいます。 ReferenceError: Error #1065: 変数 square0 は定義されていません。 at global/flash.utils::getDefinitionByName() at test_fla::MainTimeline/frame1() 何が足りないのでしょうか?
376 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 09:57:29.98 ID:eaKQgxO0] >>375 インスタンスの変数を一度で連番にする方法は、配列に入れるしか無いと思う。間違ってたらごめん そのgetDefinitionByNameは、クラス名を指定するのであって変数名ではないはず。 つまり、square0〜square9のクラスがあるんだったらいいけど、squareClassしか無いのであれば エラーだと思う。
377 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 10:58:02.16 ID:Hi2zR84C] AS2の記述と混同してるっぽいな AS3なら普通にインスタンス変数複数用意してnewして複製すればおk var square:Array = new Array(); for ( var i:int = 0; i < 10; i++ ) { square[ i ] = new squareClass(); addChild( square[ i ] ); }//試してないっす
378 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 11:09:58.85 ID:6mEC4lLr] クラス名が小文字で始まるのが気持ち悪いが、 stage.getChildByName(name_str)で複製元がとれるんで、 squareClassにcloneメソッド(クラスのメンバを複製するメソッド)を追加して やってみればいいんじゃないかな。
379 名前:Now_loading...774KB [2012/02/24(金) 11:34:01.04 ID:89pLhC/J] AS3 Flash5.5の質問です。 入力フォーム(インスタンス名:in_text)に文字を入力して、それをswitch文で一致したものを表示したいのですが上手くいきませんorz in_btn.addEventListener(MouseEvent.CLICK,in_next); function in_next(e:MouseEvent){ switch (in_text.text){ case "テスト": trace("テスト"); break; default: trace("なし"); trace(in_text.text); } } traceするとin_text.textにはしっかり テスト と入っています。 どうすればよろしいのでしょうか?;;
380 名前:Now_loading...774KB [2012/02/24(金) 12:28:11.17 ID:yqBxVBmR] 小数点以下の任意の単位で切り捨てたいのですが、うまくできません。 現在下記の公式で切り捨てています。 expr:Number = 切り捨てたい値 digit:Number = 丸めたい単位 Math.floor(expr / digit) * digit 0.3333の0.1未満を切り捨てたい場合、 Math.floor(0.3333 / 0.1) * 0.1 == 0.3の結果を期待したいのですが、 0.30000000000000004となってしまいます。 必要以上に小さい桁を切り捨てたいのですが、どうすればよいでしょうか?
381 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 12:46:27.28 ID:6mEC4lLr] >>379 そのスクリプトの最後のほうの trace(in_text.text); で なし テスト と表示されるなら、default側に来てるってことでしょ。 >>380 Numberは浮動小数点だから、0.3ってものが表現できない。 文字列でフォーマットするか、int/unitで処理して10で割るとか 工夫が必要
382 名前:Now_loading...774KB [2012/02/24(金) 12:58:10.79 ID:89pLhC/J] 379です。説明不足すみませんでした。 入力フォームでテストと入力してcase"テスト"と一致させ テスト を出力させたいのですが、 381で仰られている通り、テストと入力しても一致せずdefaultに流れて なし テスト と表示されています。 一致させて テスト を表示させるにはどこを直せばよろしいでしょうか?
383 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 13:06:58.73 ID:Hi2zR84C] >>379 var t:String = in_text.text; switch ( t ){//1回変数で受けてもだめ? >>380 こうだな var num:Number = 0.1233456; num = Math.round( num * 1000) / 1000;//小数点第三位まで num = Math.round( num * 100) / 100;//小数点第二位まで
384 名前:Now_loading...774KB [2012/02/24(金) 13:27:30.36 ID:lJqfUYy5] 質問があります。よろしくお願いします。 マウスが押されたら click_del( e , L_zero_n[0] ) という関数を実行するために、次のようなコードをかきました。 L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven t):void{ A( e , L[0] );} ); このように記述した場合は問題がないのですが、これを複数用意するために、 for(i=0; i <10; i++){ L[i].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven t):void{ A( e , L[i] );} ); } このように記述すると、コンパイルエラーが発生します。
385 名前:Now_loading...774KB [2012/02/24(金) 13:28:01.93 ID:lJqfUYy5] (つづき) エラーは関数Aの第二引数に書いているL[i]が存在しないというものです。 なので仕方がなく、 L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven t):void{ A( e , L[0] );} ); L[1].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven t):void{ A( e , L[1] );} ); L[2].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEven t):void{ A( e , L[2] );} ); … のように0,1,2,3...とひとつずつ手打ちで記述していますが、 どうにもやりきれない思いを感じます。 おそらくスコープの問題なんでしょうが、for文を使って一気に書いてしまう方法は 存在しないのでしょうか? よろしくお願いします。 関数Aは function A(e:MouseEvent , MC:MovieClip){ MC.x=400; MC.y=1400; } このように、第二引数のムービークリップの配置座標を変更する処理を行っています。
386 名前:Now_loading...774KB [2012/02/24(金) 13:30:13.03 ID:lJqfUYy5] すいません、上から4行目の click_del( e , L_zero_n[0] ) :誤 ↓ A(e,L[0]):正 の間違いでした。申し訳ありません。
387 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 13:43:56.67 ID:6mEC4lLr] >>382 試したがうまくいく。 初期文字列に空白とかが入っているとか。
388 名前:Now_loading...774KB [2012/02/24(金) 13:49:29.46 ID:89pLhC/J] >>383 駄目でしたorz が、tのtraceも加えて気になったことが一つあります。 最後のところで trace("なし"); trace(in_text.text); trace(t); の3つを連続traceしているのですが、結果に改行らしきものが入ります。 なし テスト ←ここ テスト ※現在こんな感じです。↓ var t:String; in_btn.addEventListener(MouseEvent.CLICK,in_next); function in_next(e:MouseEvent){ t = in_text.text; switch (t){ case "テスト": trace("テスト"); break; default: trace("なし"); trace(in_text.text); trace(t); } }
389 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:11:34.03 ID:6mEC4lLr] >>388 t.indexOf("\r"); ってやって、-1以外だったら改行コードがはいってることになるね。
390 名前:Now_loading...774KB [2012/02/24(金) 14:24:20.71 ID:89pLhC/J] >>389 trace(t);の下に t.indexOf("\r"); いれてみましたが、 何も返ってこないですね・・・ということは改行コードが入っているのかな?
391 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:28:27.96 ID:6mEC4lLr] あ、すまん。 trace(t.indexOf("\r")); ってことです。
392 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:31:58.80 ID:N7X/EAID] >>384 iの値は保持されないので、 Dictionary使うとか、L[i]にiの値を入れるための変数定義するとか
393 名前:Now_loading...774KB [2012/02/24(金) 14:34:27.31 ID:89pLhC/J] >>391 3が返ってきました('-'; -1じゃないので改行が入ってるってことですね(T-T)
394 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:42:57.07 ID:6mEC4lLr] >>384 > L[0].addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void{ A( e , L[0] );} ); ここと >function A(e:MouseEvent , MC:MovieClip){ > MC.x=400; > MC.y=1400; > } ここを見る限り、 クリックされたオブジェクト(L[0] )がほしいだけだよね。 質問の意図からは外れてしまうが、わざわざFunctionを使うまでもないとおもうんだが。 (別のインデックスのオブジェクトのつもりならだめだが、) L[i].addEventListener(MouseEvent.MOUSE_DOWN, A ); と普通にイベント登録して、 function A( ev:MouseEvent ) { var mc:MovieClip = ev.currentTarget as MovieClip; mc.x = 400; // 以降略 } でよくない?
395 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:43:45.74 ID:6mEC4lLr] >>393 ですねw
396 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 14:47:14.18 ID:Hi2zR84C] >>384 実行関数は1こにしてインスタンス名を取得して処理を変えるというのが一般的だ その L :Array には何が入ってるんだお ボタンインスタンスなら for( var i:int=0; i<L.length; i++ ){ L[i].addEventListener( MouseEvent.MOUSE_DOWN, aaa ); } function aaa( e:MouseEvent ):void{//実行関数 イベントは複数の引数を指定できない var st:String = e.currentTarget.name; trace( st+" クリックしたインスタンス名により分岐処理" ); }
397 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 15:19:13.09 ID:6mEC4lLr] >>393 TextFieldのmultilineをfalseに設定したら?
398 名前:Now_loading...774KB [2012/02/24(金) 18:55:47.76 ID:89pLhC/J] >>397 TextFieldのmultilineをfalseに設定して単一行にしてもやはり改行が入っちゃうみたいです(T-T) とりあえず今、TextFieldのプロパティでClssic TextをTLFに変更したらいけました!(この辺まだ勉強してないので これでいいのかわかりませんが) 改行コードに四苦八苦(削除だとか統一だとか)させられてますが、もうちょい調べて頑張ってみます。
399 名前:Now_loading...774KB [2012/02/24(金) 20:17:56.71 ID:NSUKlyLJ] 初心者です。 ムービクリップの位置がX座標200/Y座標200にあって mc.x=100; mc.y=100; と記述して位置を変更した場合、 これを『元の位置に戻す』みたいなことはできるのでしょうか?
400 名前:Now_loading...774KB mailto:sage [2012/02/24(金) 22:50:34.03 ID:6mEC4lLr] 一発でできるようなもんはない。 けど、大して難しくないよね。元の位置を覚えておくだけで良いし。
401 名前:Now_loading...774KB [2012/02/25(土) 05:43:25.69 ID:HczmMrqL] 質問です。 下記のような処理を行うとエラーとなります。 package { import objects.MyObject; ~~~~~~~ public class Test() { public var objects:Array = new Array(); ~~~~~~~~ public function Test() { var len = this.objects.length; // ←未定義のプロパティ length と言われコンパイルエラーとなる ~~~~~~~~ } } } このエラーは恐らく objects という名前が衝突していると思われますが、 名前を変える以外でどうすれば回避できるでしょうか? ご教授お願いしますm(_ _)m
402 名前:375 mailto:sage [2012/02/25(土) 10:36:21.34 ID:3xKaILQw] AS3のFlash5.5で質問です。 ここの秀でた方々のおかげでムービークリップの複製は出来ました。ありがとうございます。 そこで質問なのですが、 ■やりたいこと ローカル変数としてstageにaddChildした後に、別関数からそれをアクセスしたい。 下記のコードでは未定義としてエラーとなります。 ■前提 ステージ上にsquareというムービークリップがあり、ASリンケージはSquareClassとして定義。 ■コード addSquare(); function addSquare():void { var square:Array = new Array(); for ( var i:int = 0; i < 10; i++ ) { square[ i ] = new SquareClass(); stage.addChild( square[ i ] ); } } function moveSquare():void { stage.square[ 0 ].x = 100; } ■結果(エラー) シーン 1, レイヤー 'レイヤー 2', フレーム 1、行 12 1119: 未定義である可能性が高いプロパティ square に静的型 flash.display:Stage の参照を使用してアクセスしています。 何が足りないのでしょうか?
403 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:06:52.72 ID:JczUZ3dj] >>402 stage["square"][0].xでどうかな?
404 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:10:30.33 ID:JczUZ3dj] >>403 this["square"][0].xとか?
405 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:12:15.84 ID:3jV9He3h] >>401 方法ない気がする。思いつかないだけであるかもしれないけど。 変数名よりpackage名の方を変える方が手間がかかるが、そっちの方が良いと思う。 ユニークになるようにちゃんと考えてからね。jp.hoge.foo.objectsとかするとそれっぽくなるw
406 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:16:45.64 ID:aWGuWU9C] >>401 ちがう クラス名の後に()がついてっからだおおお ここもintかuintにしとけ var len:int = this.objects.length;
407 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:36:37.43 ID:3jV9He3h] >>406 うぉ。ほんとや。 FlashBuilderで補完してくれんかったから出来んって思ってたが コンパイルエラーにはならんねw
408 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 11:40:34.28 ID:aWGuWU9C] >>402 クラスファイルにしてるのかフレーム記述なのかどっちだお メソッド内でvar square:Array = new Array(); 宣言するとsquareはメソッド内のローカル認定されるから 他から参照できないんだ メソッドの外で定義して 参照するときは普通に square[ 0 ].x = 100; でおk 基本的な知識が足りてないぽいな どっかで基本だけお勉強してきた方がいいお スレで答えが出るまで止まってたら作業なんて進まない
409 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 13:08:43.52 ID:lm2JmoWd] >>402 考える意思
410 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 17:57:19.25 ID:QMHGhDRb] まぁでも基本って調べようにも調べづらいしなぁ
411 名前:Now_loading...774KB mailto:sage [2012/02/25(土) 22:54:46.88 ID:LbXFu1/B] ActionScriptの勉強をはしめたいのですが、オススメの本やwebサイトはありますか?
412 名前:Now_loading...774KB [2012/02/26(日) 01:25:53.33 ID:FA8HEhiz] 初心者です。 Arrayで格納した5つのムービークリップを ある1つのボタンを1回押すたびに [0]~[4]の順番に表示が切り替るようにできますか? [4]まで行ったら次は[0]に戻るようにしたいです。 ActionScript3.0使用。
413 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 01:41:41.23 ID:NOHvZtMq] 表示が切り替わる というのをどのように実装したいか次第 配列としてのヒントは(i+1)%5
414 名前:Now_loading...774KB [2012/02/26(日) 01:59:23.05 ID:FA8HEhiz] >>413 もう少し詳しく説明お願いします。 スンマセン!
415 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 02:03:56.03 ID:NOHvZtMq] >>414 まずやりたいことの問題を切り分けるのが大事 とりあえず MC2つあった時にそれらをボタンアクションで切り替えることはできるの?
416 名前:Now_loading...774KB [2012/02/26(日) 02:18:37.53 ID:FA8HEhiz] 今はボタンを押したとき if(mc1.visible){mc2.visible= true;} else if(mc2.visible){mc1.visible= true;} と記述してます。
417 名前:Now_loading...774KB [2012/02/26(日) 02:20:26.66 ID:FA8HEhiz] ↑えーと、2つとも非表示をしてからです。
418 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 04:02:37.98 ID:NOHvZtMq] なら mc[i].visible=false; i=(i+1)%5; mc[i].visible=true でいいじゃん >>413 の時点で解決してるじゃん
419 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 04:58:59.04 ID:m9AoyUQW] 全部非表示にした後じゃ、そのifどこも通らなくね? どうでも良いけど
420 名前:401 [2012/02/26(日) 06:21:12.30 ID:QzLTKR1f] >>405 やはり名前を変えるしかないんですかね もう少し足掻いてみますが他に手立てがなければそうします >>406 抜け落ちてしまいましたが、Test():void、len:int です。 var len:int = this.objects.length; ←これでもエラーとなります。 >クラス名の後に()がついてっからだおおお これはどういった意味でしょうか?
421 名前:401 [2012/02/26(日) 06:23:11.96 ID:QzLTKR1f] >>406 見直したら間違っていました。クラス名の()もミスです。 コピペしてるわけではないのでこうなっていまい混乱させてすみません。 クラス名の()が無くても、エラーとなります。 度々申し訳ございません・・・。
422 名前:Now_loading...774KB [2012/02/26(日) 08:21:03.27 ID:Lkf+EnJk] >>418 A.addEventListener(MouseEvent.CLICK,Aclick); function Aclick(event:MouseEvent):void { mc[i].visible=false; i=(i+1)%5; mc[i].visible=true; } ってことですか?
423 名前:Now_loading...774KB [2012/02/26(日) 08:44:02.26 ID:Lkf+EnJk] >>418 422です。スイマセン、できましたー。
424 名前:Now_loading...774KB [2012/02/26(日) 09:26:05.06 ID:Lkf+EnJk] ん?[1]~[4]の順番に表示が切り替って [4]まで行ったら次は[1]に戻るようにするにはどうしたらいいんだろ
425 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 10:29:07.38 ID:eO5xqLJY] >>421 var len:int = objects.length;//メンバ変数にthisはいらないんじゃん? これでもだめならもうわからん うちの環境ではパッケージ名と被ってもおkだった
426 名前:375,402 mailto:sage [2012/02/26(日) 11:18:23.25 ID:A0at/yGx] >>403 様 stage["square"][0].xにすると以下のエラーが出てしまいました。 ReferenceError: Error #1069: flash.display.Stage にプロパティ square が見つからず、デフォルト値もありません。 at test_fla::MainTimeline/moveSquare() at test_fla::MainTimeline/frame1() sky.geocities.jp/ameryamery/403.fla >>404 様 this["square"][0].xにすると以下のエラーが出てしまいました。 TypeError: Error #1010: 条件は未定義であり、プロパティがありません。 at _403_fla::MainTimeline/moveSquare() at _403_fla::MainTimeline/frame1() sky.geocities.jp/ameryamery/404.fla >>408 様 フレーム記述です。 var square:Array = new Array();をメソッドから外出しして、square[ 0 ].x = 100;に変えてみましたが、以下のエラーが出てしまいました。 TypeError: Error #1034: 強制型変換に失敗しました。SquareClass@354960b1 を Array に変換できません。 at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() at _404_fla::MainTimeline() TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at _404_fla::MainTimeline/addSquare() at _404_fla::MainTimeline/frame1() sky.geocities.jp/ameryamery/408.fla 何がいけないのでしょうか?
427 名前:Now_loading...774KB [2012/02/26(日) 12:43:01.59 ID:IjtfA0TB] ボタンEを押した後はArrayの[0][1]がボタンGを押す度に順に切り替り ボタンFを押した後はArrayの[2][3][4][5]がボタンGを押す度に順に切り替る ようにしたいのでが、 G.addEventListener(MouseEvent.CLICK,Gclick); function Gclick(event:MouseEvent):void { arr[a+b].visible=false; a=(a+1)%c; arr[a+b].visible=true; } と記述し、 ボタンEを押したときb=2;c=4 ボタンFを押したときb=0;c=2となるよにしたのですが E.Fのボタンを押してからBTAを押すとうまくいきません、 もう一回BTAを押していくと大丈夫なのですが。 すいません教えてください。
428 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 14:52:03.32 ID:BaBydG0d] 常駐して質問してる奴のサポセンみたいになってるなw 自分の頭で考えてからにしてほしいもんだ
429 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 15:24:22.91 ID:MwIC8OEx] >>425 うちはFlash Professional CS5でエラー出る >>407 がFlashBuilderでエラーでないらしいから環境の違いかもね
430 名前:Now_loading...774KB [2012/02/26(日) 17:26:24.19 ID:/pJ926vy] FlashBuilder4.6です。 スタンドアロンFlashPlayerで表示するFlashムービーを作っているのですが ウィンドウサイズを最低限UIComponent.minWidth及びminHeightより大きく 表示するにはどうすればよいでしょうか? widthとheightを固定値にすればその大きさになってくれるのですが、 リキッドレイアウトを想定したデザインにしているため、 出来ればwidthとheightを100%から変えたくないのです。
431 名前:Now_loading...774KB [2012/02/26(日) 18:33:41.33 ID:kPB8zu07] >>418 理解しました。 mc[i].visible=false; i=(i+1)%5; mc[i].visible=true これで順番にArrayに格納したムービークリップを 表示していけるのが分ったんですが、 逆順番に表示が難しい。 Aボタンを押すと[0]~[4]まで順番に表示を切換え Bボタンを押すと逆順番に表示したいのですが うまくいきません。
432 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 18:37:55.80 ID:S/Kz+fvk] そうですか
433 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 20:24:54.18 ID:NOHvZtMq] >>431 理解したんなら二行目の意味よく考えれば応用できるだろ ちょっとこの三行がなにやってるのか説明してみ
434 名前:Now_loading...774KB [2012/02/26(日) 21:04:12.46 ID:kPB8zu07] iの値を1ずつ増やして 4のときは(4+1)÷5で0に戻してるのは 分るのですが、 4からi+1の値を減らしてくのかな? うーむ。
435 名前:Now_loading...774KB mailto:sage [2012/02/26(日) 21:16:25.12 ID:+stcZHxe] スレチかもだけどAS3について勉強できる書籍教えてください cs5.5mcかったらflash5ついてたしMX以来久々に触ろうとおもったらmcやボタンインスタンスに直接書けなくなってるしわけわからなくて
436 名前:Now_loading...774KB [2012/02/27(月) 02:57:57.34 ID:l+BFSs+J] 435 完璧にhtml5変換できるAS2のままの方がいいYO
437 名前:Now_loading...774KB mailto:sage [2012/02/27(月) 08:45:45.69 ID:r7EQhl8w] AS2でも完全な変換は無理
438 名前:Now_loading...774KB [2012/02/27(月) 09:12:10.77 ID:pxoBi0Rw] >>434 プログラミングに王道なし キャッチボール(基本)もできないやつに外野フライ(応用)は捕れない。
439 名前:Now_loading...774KB mailto:sage [2012/02/27(月) 12:34:12.79 ID:pJgFFd1x] 王道ないなら、やり方に指示なんか出来ないはずだが
440 名前:Now_loading...774KB mailto:sage [2012/02/27(月) 13:51:27.22 ID:2xdYP+vt] 先人がかき分けた獣道があるよ
441 名前:Now_loading...774KB mailto:sage [2012/02/28(火) 00:57:35.64 ID:+3kwKHPV] 言語によって道が決まるんだから 獣道とは違う
442 名前:Now_loading...774KB [2012/02/29(水) 06:11:52.55 ID:yk5bTvCS] ASでクライアントの能力を推定する方法を探しています。 CPUパワーやメモリ搭載量を直接知ることは出来ないので、1つの案として浮動小数点計算を させて、手元のPCとの対比を考えています。 例えば、ある繰り返し計算(例えば10万回)を手元のPCが100msで終わったとしたら、これを基準 として、クライアントで同じ計算を行いその時間を元に知るというものです。 他に良い案はありますか?
443 名前:Now_loading...774KB mailto:sage [2012/02/29(水) 08:13:37.84 ID:DT4jDBvk] アンケート
444 名前:Now_loading...774KB mailto:sage [2012/02/29(水) 15:22:10.16 ID:A2/NE12S] >>443 に一票
445 名前:442 mailto:sage [2012/03/01(木) 01:14:43.50 ID:H0TTFYG7] >>443-444 不特定多数の人が対象なので、一旦SWFを起動してもらって 環境に応じて挙動を変えるのが目的です。
446 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 01:29:47.26 ID:6LDBT280] 一端SWF起動して、そこでアンケート 主に描画がネックなんだから、複雑な描画とかして FPSとれば?
447 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 01:34:11.10 ID:6LDBT280] そもそも自動的に挙動変えなくちゃいかんの? PCゲームとかのように、オプションで変更可にするほうがよさそうに思えるが
448 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 05:04:21.17 ID:yeGZKgHa] >>442 へぇ。面白いねそれ。俺もやってみようかな
449 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 12:25:42.92 ID:Zf7WGHrJ] 100ms位じゃぶれが大きくてつかえない。 かといって10秒3回とかやられたら その時点でそのSWF閉じるな。 バックグラウンドで何かやってるのとかも影響するから 結局利用者に選ばせた方が良いと思うんだが。
450 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 18:03:43.41 ID:Sapx7fqp] ActionScript3です。 public const hoge:Hoge = new Hoge(this)←こいつにthisを喰わせてやりたいのですが そのままやるとうまくできません。どうやってthisを渡してやればよいでしょうか?
451 名前:Now_loading...774KB mailto:sage [2012/03/01(木) 18:11:13.22 ID:Sapx7fqp] >>450 自己レス。なんかの思い違いだったようです。 普通にthis喰わせることができました