1 名前:Now_loading...774KB [2009/02/15(日) 20:01:57 ID:1/O2Tz9q.net] 反省はしていない
39 名前:Now_loading...774KB mailto:sage [2009/08/08(土) 15:01:44 ID:vqvLf49M.net] できたあああ parent付けたら見れた! trace("buttonON: "+ container.getChildIndex( do.parent ) ); 子でなければなりません。 って言ってんのになぜ親を参照したら見れたのか わからんが とにかくお騒がせして申し訳なかった…
40 名前:33 mailto:sage [2009/08/10(月) 01:05:04 ID:B0X8ZcOd.net] どうも〜 相変わらず誤作動の多い33っす 詳しい人がいたら解説お願いっす 1 外部swf(movieClip)を本体swfのSpriteコンテナに読み込んでいて 読み込み側の swfではちゃんとインスタンス名(nameプロパティ)付けてんのに 読み込まれた後は instance*** と勝手な名前が付けられてしまいインスタンス名でアクセスできない 読み込み後に名前付けようとすると以下のエラーが出る 「タイムラインに配置されたオブジェクトの name プロパティは修正できません。」 コンテナの中身のMCをインスタンス名で操作するにはどうすればいいのか? 2 型をMovieClipにしてコンテナに追加してるのに トレースすると たまにMainTimelineになっている なぜなのか…誤作動の原因の一つではないのか? そもそも[object MainTimeline]って何なのだ AS2の_rootて事? コンテナの中身を列挙 中には外部読み込みのMCが入っている trace( i+ ":"+container.getChildAt( i )+" name: "+container.getChildAt( i ).name ); トレース結果 1:[object MainTimeline] name:instance1280 2:[object MainTimeline] name:instance1074 3:[object MovieClip] name:instance1363
41 名前:Now_loading...774KB mailto:sage [2009/08/10(月) 04:00:00 ID:ejJQWie8.net] >>40 外してるかもしれないけど、そもそもなんでnameプロパティ見てるの? var mc1:MovieClip; var mc2:MovieClip; var mc3:MovieClip; に対して mc1.ほげほげ() じゃダメなの?
42 名前:Now_loading...774KB mailto:sage [2009/08/10(月) 04:11:39 ID:ejJQWie8.net] >>33 を見ただけだと、なんかこういう事してるのかと思た [SWF (width=800, height=600)] public class Main extends Sprite { private var frmcnt:int = 0; private var mcChild:MovieClip; public function Main():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { if(frmcnt%10==0) { if(mcChild!=null) mcChild.removeEventListener(省略); var i:int = frmcnt/10; mcChild = new iによってMC切り替えつつnew(); // どこぞでこの mcChild.ほげほげ() を使う } frmcnt = (frmcnt+1)%40; } }
43 名前:Now_loading...774KB mailto:sage [2009/08/10(月) 09:57:37 ID:/i4wb6H5.net] そういえばname属性なんて、AS3では使った事ないわ。
44 名前:Now_loading...774KB [2009/08/10(月) 10:11:14 ID:yeEQWR3d.net] 質問です。 最近AS3.0を始めて、書籍を数冊読みつつやっとこさっとこEventListenerでmcを動かす程度は理解出来るようになりました(概念的な部分はかなり不十分ですが…) そんな自分にかなりの無茶振りをされて、どうしたら良いものかと悩んでいます。 その内容と言うのが、 1:背景はアニメーション(背景が動く程度)+文言←これが数回続く 2:1の動きの後に各コンテンツに移動する為の項目が出てくる 3:2からコンテンツに移動するとPOPUP、他サイトをキャプチャした画像がFlash内一面に表示される(Flash内右側にスクロールバー、下にフッター) 4:3を下に移動させて行くとある特定の場所でフッタのコメントが切り替わる+フッタのパーツがアニメーション(ちなみに画像をクリックするとそのサイトにジャンプするようにする) 以上を表現する為には最低限何が必要でしょうか? 漠然とした質問なのは重々承知なのですが、作成する流れだけでも掴めればと思い質問しました。 先輩方、どうかご教授お願い致します。
45 名前:33 mailto:sage [2009/08/10(月) 17:32:41 ID:B0X8ZcOd.net] どうも! 不具合だらけの33っす >>44 要するに中規模で複雑な操作が必要な「やっかなモノ」って事ですな おれも中規模程度で複雑なモノの製作でがんがっているっす 最低限何が必要なのかはまったくわからないが 作り始めないと前へは進めないお お互いがんがろー >>41 レスどうもっす! nameプロパティを見るのは var mc1:MovieClip;のような 変数名が存在しないからなのです 外部読み込みのMCの数は数百にも及び 空のMC、もしくはSpriteオブジェクトのコンテナにその都度読み込み 操作したい というのが目的っす で 現在 インスタンスの構造を列挙するメソッドを作って調べようと試みてるのですが またまた困っております 誰かお助けをorz
46 名前:33 mailto:sage [2009/08/10(月) 17:36:01 ID:B0X8ZcOd.net] 現在作っているインスタンスの構造を列挙(3階層くらい)するメソッドっす shapeオブジェクトに到達すると以下のエラーが出てしまいます ReferenceError: Error #1069: flash.display.Shape に プロパティ numChildren が見つからず、デフォルト値もありません。 shapeオブジェクトを検出したら列挙ループをcontinueさせたいのですが 方法がわからないっす //mc1が1階層目 mc2が2階層目 mc2 = mc1.getChildAt( i );//1階層目のインデックス i にshapeオブジェクトがあった場合 no2 = mc2.numChildren;//プロパティが無くエラー if ( mc2.numChildren==null ){//nullを検出できない このif自体エラーとなる trace( typeof( mc2 ) );//MovieClipだろうがShapeだろうが"object"としか判別されない
47 名前:Now_loading...774KB mailto:sage [2009/08/10(月) 20:23:24 ID:e6umgfua.net] >>45 >変数名が存在しないからなのです 外部読み込みのMCの数は数百にも及び >空のMC、もしくはSpriteオブジェクトのコンテナにその都度読み込み 操作したい >というのが目的っす いやなんて言うか、数百でも数千でも同じなんだけど、変数名が存在しない、じゃなくて 適当な変数に読み込んだMovieの参照を持っといてそれ操作するのが普通じゃね?って話 この辺、多言語でコンスタントに開発でもしてるとわかる話なんだが あと >>46 多分 JavaScript的なダックタイピングな後付のプロパティって、AS3だと許されないような気がする #ただし Objectなどの組み込み型を除く
48 名前:Now_loading...774KB mailto:sage [2009/08/10(月) 20:54:17 ID:sklC6EUR.net] >>46 コンテナかどうかをDisplayObjectContainerかどうかでチェックすりゃいいんじゃないかな function hoge(o:DisplayObject,s:int=0):void{ trace(rept(s) + o.name, getQualifiedClassName(o)); if(o is DisplayObjectContainer){ var c:DisplayObjectContainer = o as DisplayObjectContainer; s++; for(var i:int=0;i<c.numChildren;i++)hoge(c.getChildAt(i),s); } } function rept(n:int):String{ var s:String =""; while(n-->0)s+="\t"; return s; } //任意の表示オブジェクト以下の階層チェック hoge(this)
49 名前:33 mailto:sage [2009/08/10(月) 21:21:28 ID:B0X8ZcOd.net] >>48 スゴイのキターーー! わざわざありがとうございます!
50 名前:33卒業 mailto:sage [2009/08/18(火) 01:42:23 ID:YGY09j4u.net] どうも33でつ この度みなさんのアドバイスのおかげでやっと不具合が無くなりました >適当な変数に読み込んだMovieの参照を持っといてそれ操作するのが普通じゃね? の アドバイスで外部読み込みのswfをすべて個別にアクセス用の入れ物MCに書き込ませて 成功しました 結局確たる不具合の原因はわかりませんでしたが 何かの参照が生きていたのでしょう 以前の 読み込んだモノに直接ボタン関係のリスナー登録やremoveChildがまずかったようです 一つ賢くなりました >>48 さんの列挙メソッドもコンテナの内部チェックでとても役に立ちました これはC++とかでフォルダの 階層を探るような場合に使ったりするんでしょうか 関数内で自らの関数を呼べるなんて知りませんでした まだ全然製作途中ですが… みなさん本当にありがとうございました〜
51 名前:Now_loading...774KB mailto:sage [2009/08/27(木) 12:11:20 ID:qVSQpBIM.net] 2.0から3.0に移行するのにおすすめのサイトとかないの? こんな違いに注意、とか
52 名前:Now_loading...774KB mailto:sage [2009/08/27(木) 13:12:47 ID:cr40xepZ.net] ttp://www.adobe.com/jp/devnet/flash/articles/first_as3_application.html ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/migration.html この辺かな? 次回からテンプレに載せよう
53 名前:Now_loading...774KB mailto:sage [2009/08/27(木) 13:57:24 ID:qVSQpBIM.net] >>52 おおこんなはやく多謝 正直ググれカスって帰ってくると思った 将来的には3.0しか残らないならそろそろ3.0はじめてみようかな 前スレってこれかな unkar.jp/read/pc11.2ch.net/swf/1151840424
54 名前:Now_loading...774KB mailto:sage [2009/10/20(火) 18:55:20 ID:XJYo53ko.net] あーもうただ動画再生するだけなのになんでこんなややこしいもの覚えなきゃ何ねーんだああ
55 名前:Now_loading...774KB mailto:sage [2009/10/20(火) 23:24:06 ID:Ym/K5BOb.net] ActionScript以外の言語や、そもそもライブラリ自体が揃ってないような言語で 動画再生することを考えるといい。 そもそも動画を再生するロジックが既に用意されてる時点で、相当簡単なはずなのだ
56 名前:Now_loading...774KB mailto:sage [2009/10/26(月) 16:38:24 ID:E3J+/yIB.net] AS3は触ってみると以外とすぐ慣れるよ
57 名前:Now_loading...774KB mailto:sage [2009/11/15(日) 17:29:53 ID:6GNc50Ep.net] おれはas3も覚えたが、as3はプログラマーのためのものとつくづく思うよ。 もともとflashはデザイナーが、高度なプログラミングの知識など無くても 比較的簡単にアニメーションやインタラクティブwebが作れる環境として発展したきたはずだけど as3は基本的に真性プログラマー前提だわな。 大規模なwebアプリケーションを分業のもとに開発するケースが増えた時代の要求なんだろうけど、 プログラマーではなく、デザイナー兼そこそこプログラミングって感じで、 コンパクトな仕事やってきた個人には使いづらいものになってしまった、と思う・・・
58 名前:Now_loading...774KB mailto:sage [2009/11/15(日) 17:36:57 ID:6GNc50Ep.net] 正直as3の実行速度がどうしても必要な場合以外は、as2が効率的と思うよ。 アドビもわかってやってると思うから、 もしas2無くすときは、代わりにかつてのlivemotionみたいな デザイナーのためのflashツール出す気がする。
59 名前:Now_loading...774KB mailto:sage [2009/11/18(水) 11:51:22 ID:W62VdS3m.net] 呼び出し元のクラスや関数を知りたいんだ phpのbacktraceみたいなメソッドてないんだっけ? 自作しかないなら作ってもらえないか? もしくはヒントだけでもよろです
60 名前:Now_loading...774KB mailto:sage [2009/11/22(日) 22:24:51 ID:MseXE1s7.net] >>59 livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001349.html livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001349.html
61 名前:Now_loading...774KB mailto:sage [2009/11/22(日) 22:26:26 ID:MseXE1s7.net] ミスった livedocs.adobe.com/flash/9.0_jp/main/00001350.html#wp135477 livedocs.adobe.com/flash/9.0_jp/main/00001349.html#wp135372
62 名前:Now_loading...774KB mailto:sage [2010/01/30(土) 01:21:03 ID:tkhyDsLh.net] Flash超基本的な質問スレから いままでタイムラインにスクリプト書いてましたが、 ドキュメントクラスを作って別の.asファイルに書いてみようと思っています。 フレーム1に書いてあるスクリプトが実行される→なんらかの動作をしてフレーム2に移動 →フレーム2にかいてあるスクリプトが実行される のように書いていたのですが、ドキュメントクラスに書くときはこれはどうすればいいのでしょう? private function frame1(){} private function frame2(){} と用意して mainのコンストラクタに frame1() 規定の動作があった フレーム2に移動させる frame2() のようにフレームごとに関数化させるのでしょうか?
63 名前:Now_loading...774KB mailto:sage [2010/01/30(土) 01:29:31 ID:tkhyDsLh.net] Flash超基本的な質問スレ>>412 さん >>エンターフレームをリスナー登録して毎フレーム実行される関数を作って >>そこからメインタイムラインを監視、制御させるんだお public function Main(){ frame1(); var cframe:int; this.addEventListener(Event.ENTER_FRAME,frameWatcher); } private function frameWatcher(e:Event):void{ if(cFrame!=this.currentFrame){ cFrame=this.currentFrame; this["frameAction"+cFrame](); } } private function frameAction1():void{} private function frameAction2():void{} てな感じなのでしょうか。
64 名前:基本スレ412 mailto:sage [2010/01/30(土) 11:39:27 ID:ptvWHzPf.net] それはおかしいな それじゃあ動かなかったろ? おれのよく使うメインクラスを貼ってみるから参考にしてくれ public class Foo { private var rootMC :MovieClip; private var stageMC :Object; public function Foo ( r :MovieClip , s :Object ) {//コンストラクタ rootMC = r;//メインタイムライン 呼び出し側引数でthis渡す stageMC = s;//stageはコンテキストメニュー設定等にも使う stageMC.addEventListener ( Event.ENTER_FRAME, mainFoo );//エンターフレーム登録 } public function mainFoo ( e :Event ):void {//メイン処理 var Mcf :int = rootMC.currentFrame;// if ( Mcf==10 ) {//前設定 タイトル画面 //ボタンとか検出したら rootMC.gotoAndStop( 11 ); }else if ( Mcf==11 ) {//タイトル画面 //スタートボタンとか押したら rootMC.gotoAndStop( 20 ); }else if ( Mcf==20 ) {//前設定 ゲーム画面 //ゲーム上のキャラ、オブジェクトを検出したら rootMC.gotoAndStop( 21 ); }else if ( Mcf==21 ) {//ゲーム画面 }//end if ( Mcf==10 }//end function Main }//end class
65 名前:63 mailto:sage [2010/02/01(月) 00:58:06 ID:IqF3bliE.net] >>64 ありがとうございます。 ドキュメントクラスではFooインスタンスをnewするだけってかんじですか? enterframeって重いイメージがあるんですがこれくらいの判定なら屁みたいなもんなのかな render イベントとかではだめですよね 個々のスクリプトが長くなるとやっぱり関数化します?
66 名前:Now_loading...774KB mailto:sage [2010/02/01(月) 11:02:00 ID:YWEVhKxS.net] 412でつ ああドキュメントクラスでは作った事がないのでわからんす 64のは普通の外部クラスファイル読み込みでの方法 メインタイムラインから var f :Foo = new Foo( this, stage ); RENDERイベントは古いFlaプレーヤーだとバグるってお? コードが長くなったら処理の系統毎にクラス分けすればおk
67 名前:63 mailto:sage [2010/02/04(木) 13:53:45 ID:59GN4Hha.net] >>66 できました。ありがとうございます。 >コードが長くなったら処理の系統毎にクラス分けすればおk 結局はそれにつきるんですね…
68 名前:Now_loading...774KB mailto:sage [2010/02/15(月) 01:07:30 ID:xO91dKO9.net] 質問です。 Loaderクラスで3つの外部の画像を同時に非同期読み込みして ProgressEvent.PROGRESS と Event.COMPLETE で読み込み具合を監視しているのですが ・初めて読み込む画像は PROGRESS, COMPLETE の両方が呼ばれる ・キャッシュに残っていて即読み込める画像は PROGRESS のみ呼ばれる という現象があり、COMPLETEが呼ばれないことがあって困っています。 おそらく下記URLと同じ現象だと思うのですが、回避方法わかる方いませんか? ttp://www.pokipoki.org/blog/?p=23
69 名前:Now_loading...774KB mailto:sage [2010/02/15(月) 01:53:43 ID:qwIUvL5P.net] Progressイベントてロード開始時と終了時の2回呼び出されると思ったが Progressイベントで終了時呼ばれた時 event.bytesLoaded と event.bytesTotalを 比較してイコールなら完了! てのはだめかな? 試してないが…
70 名前:68 mailto:sage [2010/02/16(火) 01:30:16 ID:nOI6PjdN.net] >>69 イコールなら完了!としても、Loader.contentLoaderInfo.contentType が null なので心配です…。 PROGRESSイベントは使わずCOMPLETEイベントだけ監視するようにすると ちゃんとCOMPLETEは来るようです。
71 名前:Now_loading...774KB mailto:sage [2010/02/18(木) 22:30:03 ID:CM37KvUO.net] >>70 close()呼んだらどうなる?
72 名前:Now_loading...774KB [2010/03/09(火) 07:42:57 ID:3slVzMNg.net] 今でも上野亨のActionScriptバイブルは読んだほうがいいの?
73 名前:Now_loading...774KB mailto:sage [2010/03/15(月) 13:35:00 ID:I8etU97M.net] >>72 公式リファレンスとGoogleあれば、基本的に教則本は不要。 ていうか、教則本に頼ると、検索スキルが身につかないよ。
74 名前:Now_loading...774KB mailto:sage [2010/03/15(月) 18:02:48 ID:9/T77r+s.net] AS3分かる人って尊敬しちゃう。 参考書を沢山買っても、やりたい事が出来ない私はおバカさんです。
75 名前:Now_loading...774KB mailto:sage [2010/03/15(月) 18:13:35 ID:hgPWlJiY.net] >>74 数こなせ
76 名前:Now_loading...774KB mailto:sage [2010/03/15(月) 19:13:27 ID:bcc/+mzE.net] 全てのクラス(名)が継承順に表記されてる表ってどっかになかったっけ? 4分割くらいでプリントアウトして繋げて壁に貼っておきたいんだが
77 名前:Now_loading...774KB mailto:sage [2010/03/15(月) 20:48:52 ID:hgPWlJiY.net] AS3 Class Diagram ViewerというAirがある
78 名前:Now_loading...774KB mailto:sage [2010/03/17(水) 10:46:04 ID:UYsjGtRS.net] >>77 すごいなこれ メソッド、プロパティ、定数全部載ってるのかw おもしろいものを教えてくれてありがとう だがやはり継承順を図で見るには自分で作らないとだめかorz
79 名前:Now_loading...774KB [2010/03/18(木) 11:43:29 ID:f6CGDWqp.net] 教えてくれ ボタンインスタンスの再読み込み時にボタンが反応しないんだ なぜなんだろなー… @メインタイムラインに各画面がありそれぞれに色々なボタンを配置 メイン制御クラスで 各ボタンを配列でまとめて引数で渡してボタンクラスをnew ボタンクラスではMOUSE_DOWN、MOUSE_OVER等をリスナー定義 Aボタン反応する 他の画面に移行する場合はボタンクラスですべてのボタンをリムーブリスナー メイン制御クラスでnewしたボタンクラスインスタンスをnullし @に戻る A他の画面でリセットボタンでデータをクリアし最初に戻る ボタンクラスですべてのボタンをリムーブリスナー メイン制御クラスでnewしたボタンクラスインスタンスをnull メイン制御クラスもメインタイムライン側でnull メインタイムラインを再び流してメインクラスをnew @に戻ってAの段階でボタンが反応しなくなる
80 名前:79 mailto:sage [2010/03/18(木) 15:06:54 ID:f6CGDWqp.net] だめだわからん 相変わらずリセット後のボタンが反応無しっすorz リセット後もボタンクラスが生きてるのかと思い 怪しげな参照を片っ端からnullに、 ボタンクラス内のメンバ変数、リスナー関数をstaticにしてもボタンが反応無し そもそもメインタイムラインからボタンが無くなるという仕様がダメなのか? 再読み込みで反応しないという経験がある人はヒントだけでもいいからよろっす
81 名前:Now_loading...774KB mailto:sage [2010/03/18(木) 18:05:00 ID:RX1/xeNt.net] >>80 とりあえずそんな経験は全然無いんだけど、一つ気になった点 「ボタンインスタンスの再読み込み」 って、どうやってる? // btn は本当はメンバだとして… var btn:Button = new Button(); btn.addEventListener(略); : // 別の場所で… btn.removeListener(略); btn = null; こういう状態なら、メインタイムラインもクソもまったく何も問題起こらない訳で
82 名前:Now_loading...774KB mailto:sage [2010/03/18(木) 18:06:40 ID:RX1/xeNt.net] あ、ちなみに >>81 のコード断片は、「インスタンスの再読み込み」 でなく、 「ボタンインスタンスを生成している」 状態。 あと、Button ってクラスは今便宜上そういう名前にしただけなので、 コピペで動くとかは無い、と一応念のため補足しとく
83 名前:79 mailto:sage [2010/03/18(木) 18:49:57 ID:f6CGDWqp.net] レスどうもです! 再読み込みは普通にインスタンスをnull後 再newしてるんですが… ボタン等は静的に配置した物です 何か変なトコがあったらアドバイスよろっす //メイン制御クラス タイトル画面の処理 var tg :MovieClip = rootMC.startScreenMC;//タイトル画面ターゲット rootMCはメインタイムライン if ( tg.startBTN != null ){//ボタン検出したら var bn :Array = new Array( tg.startBTN, tg.selectBTN );//ボタンはまとめて配列で渡す sbtn = new Simple_Button( rootMC, bn );//ボタンクラスnew sbtnはメンバ変数 } //タイトル画面からプレイ画面に移行直前の処理 if ( sbtn.startBflg ){//スタートボタン押したら (startBflgはゲッターフラグ) sbtn.removeListenerBTN();//リスナー削除処理 sbtn = null; rootMC.gotoAndStop("プレイ画面"); }
84 名前:Now_loading...774KB mailto:sage [2010/03/18(木) 18:58:10 ID:RX1/xeNt.net] >>83 とりあえず変な事っていうか、そういう用途で再び利用される事がわかっているオブジェクトだったら、 削除などしないで非表示にしとけばいいだけなんじゃないかと思った。
85 名前:Now_loading...774KB mailto:sage [2010/03/24(水) 00:09:35 ID:jF+1DgXj.net] a_mcとb_mcがあり、どちらもTweenで動いています。 a_mcの動きが終わったら、b_mcが動くというのをしたいのですが どうすれば良いのでしょうか?
86 名前:Now_loading...774KB mailto:sage [2010/03/24(水) 01:21:45 ID:GSBbnnia.net] すぐ上にあるだろ onCompleteつかえよ
87 名前:as [2010/03/26(金) 01:39:11 ID:Ccvvwv2l.net] ActionScript 3.0で a0 = 1; a1 = 2; a2 = 3;を b0 = 0; b1 = 0; b2 = 0;に一括代入する方法を教えてください。 ActionScript 2.0の場合、 for(i=0;i<3;i++){ _root["b"+i]=_root["a"+i] } で出来るのですが、ActionScript 3.0で同様にするには、どうすればいいですか。
88 名前:Now_loading...774KB mailto:sage [2010/03/26(金) 02:33:20 ID:7nc1RbyI.net] ほらよ var a0:int = 1, a1:int = 2, a2:int = 3; var b0, b1, b2 :int; for( var i:int =0; i<3; i++ ){ this["b"+i ] = this["a"+i ];//メインタイムライン以外ならターゲット変えるんだお } trace(b0,b1,b2);
89 名前:as [2010/03/26(金) 03:05:44 ID:Ccvvwv2l.net] >>88 ありがとうございました。 早いので驚きました。 感謝します。
90 名前:Now_loading...774KB mailto:sage [2010/03/26(金) 09:59:59 ID:x1zRaoNR.net] 配列使えよ
91 名前:Now_loading...774KB mailto:sage [2010/03/26(金) 15:52:56 ID:DhbUuBx0.net] AS3って具体的に何ができるの? 自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり 派手な演出する以外に実用的な動きがAS3で実現できるなら 何か1つ具体例を出してくれないか?煽りじゃなくて疑問
92 名前:Now_loading...774KB mailto:sage [2010/03/26(金) 16:52:46 ID:CqOonTg0.net] >AS3って具体的に何ができるの? Flash上で表現出来るもの、実質全部。ただし編集機能とか、そういう事ではなくて、 作品動作として、SWF上で動く内容全部。 要はプログラミングで何かを作るって事。 >自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり >派手な演出する以外に実用的な動きがAS3で実現できるなら >何か1つ具体例を出してくれないか?煽りじゃなくて疑問 ぎゅーんとだろうがぐぁーっとだろうが、上に書いたとおりの理由で何でも可能だけど、 要はプログラミングなので、そのつもりで勉強しないと無理。 入門者向けに言うと、まず変数とは〜から始まって、処理の条件分岐だとか繰り返しなどの構造に入って・・・ そこら辺はFlashと関係なく、プログラミングの基礎として理解したあと、Flash固有の機能を利用する方法に入る感じ。 もちろん、頭が柔軟なら、あるいは世間のチュートリアルなどではこの順序を逆にしてる所もあるし、 一緒に覚えてもらおうとしている所もあるし、そこは内容次第。 具体例は、世間の各種サイトで目にする全てのFlashだと思えばいい。
93 名前:Now_loading...774KB mailto:sage [2010/03/26(金) 18:14:13 ID:7nc1RbyI.net] 頂点の多い3Dとかはまだ無理なんだよな…
94 名前:Now_loading...774KB mailto:sage [2010/04/01(木) 11:41:23 ID:sHacLJsA.net] すいません教えてください! MovieClipの参照が入っているArrayを、x座標順に並び変えたいのですが、 //mcArrayというArrayの中に、MovieClipが入っています。 var newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC); とやると、「未定義のプロパティxへのアクセスです」 とエラーが出てしまします。
95 名前:Now_loading...774KB mailto:sage [2010/04/01(木) 11:52:49 ID:jHFdhcQZ.net] var newMcArray:Array = new Array(); newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC);
96 名前:Now_loading...774KB [2010/04/01(木) 13:32:09 ID:J643nL7+.net] 0除算したときや計算結果がNaN,Infinityになったとき 実行時エラーになるように設定できませんか? 環境 flashCS3,winXP
97 名前:94 mailto:sage [2010/04/01(木) 13:56:55 ID:sHacLJsA.net] >>95 xを"x"にしたらできました! var newMcArray:Array = mcArray.sortOn("x", Array.NUMERIC); おさわがせしました
98 名前:Now_loading...774KB [2010/04/05(月) 23:48:41 ID:k0m6RJbe.net] a
99 名前:Now_loading...774KB mailto:sage [2010/04/05(月) 23:53:40 ID:k0m6RJbe.net] 間違えて押しちゃいました・・・。 すごく初歩の初歩で申し訳ないんですけど ロールオーバーはどうやるんでしょうか? ロールオーバー前と後の2つのMCを切り替えたいんですが。 ぐぐっても、参考書にも書いてなくて。
100 名前:Now_loading...774KB mailto:age [2010/04/08(木) 22:25:35 ID:gCUfROet.net] 質問っす メインタイムラインにインスタンスを配置して画面を切り替える時にTypeErrorがよく出るんだけど↓ TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 try〜catchで囲っておけば問題無いのかな? 1fps回ればエラーは出なくなるっす エラー出るのは1回だけなのに そのままサイトにうpると警告が出て困るんだ
101 名前:Now_loading...774KB mailto:sage [2010/04/08(木) 23:00:10 ID:Th7APyuo.net] >>100 そもそもの作りを見直せ。それは多分、ローカルで実行してる分には早いから何も起きない(?)が、 web上で何かロードでもしてるような場合、タイムラグがあるのは当然として、それが例えば考慮されてないとか。 そのエラーは多分、「このタイミングならきっと出来てるよね」というオブジェクトが、出来ていない状態のまま メソッドなりプロパティなりをアクセスしている不良コードなので、きちんと流れを見直して書き直した方がいいぜ
102 名前:Now_loading...774KB mailto:sage [2010/04/08(木) 23:53:42 ID:gCUfROet.net] がーん! まじですかい? 不良コードだったのか… ちなみに try〜catchてどういう時に使うのが正解なの?
103 名前:Now_loading...774KB [2010/04/09(金) 04:03:16 ID:ZbEkwPYF.net] >>102 ActionScriptの世界は知らないけれども、より例外処理と関わる 機会の多いJavaの世界ではこんな事になっている。 d.hatena.ne.jp/amachang/20100325/1269492368
104 名前:Now_loading...774KB mailto:sage [2010/04/09(金) 06:45:50 ID:VvlDWTKu.net] なんで知らないやつがここにいるのかということのほうが興味ある
105 名前:101 mailto:sage [2010/04/09(金) 09:12:52 ID:3LXlHUvw.net] >>102 1.この処理ははっきりと何か理由により、例外が発生する事がわかっている。その可能性がある事がわかっている時 … ASでは無いけど、例えばファイル入出力の処理とかで、『自分(アプリケーション)の関知しない所で』、 =例えば他のアプリケーションやOSの都合で、ファイルにアクセス出来ないような場合がある。 そんな時、「あらかじめわかっていて、かつ自分の範疇/都合で回避は出来ないから」 しかけたりする 2.そもそも意図して例外を発行するオブジェクトがあったとして、それを意図的にキャッチするような時 … 動作コスト的にあまり行わないかもしれないが (本当に意図した物なら戻り値で判断してもらう方が低コスト)、 それでもロジックによっては何かの処理分岐で、「この場合には例外を発行する」 と設計する事がある。 それがわかっている時。 そして >>100 を例とするような実装に不備があって起こる例外は、安直に try〜catchで逃げる=不具合を隠蔽している という事になるので マズい。 そしてそれが起こる原因を追求して潰していない場合、知らない所で 二次災害、三次災害なんて普通に起こる。 (全体的に Nullでない前提で動く物が、どこかでNullになってしまっていたら、どこまでぶっ壊れるかって事) こんな感じ
106 名前:Now_loading...774KB [2010/04/09(金) 12:38:33 ID:ZbEkwPYF.net] >>104 いやActionScriptは知ってるし書けるけど例外についてActionScript の世界でどういう議論がなされてきたかに関しては詳しく知らない って事で。どこかに良いポインタあるかな?
107 名前:100 mailto:sage [2010/04/09(金) 13:38:33 ID:0pZkcie5.net] どうもみなさん たくさんのアドバイスありがとうございました null検出の不具合はインスタンスが読み込まれるまで回す事で解決しました Flashにおけるtry catchの使いどころはアバターチャットやカメラ使用のテレビ電話的なチャット、 ネットゲーム等のサーバ経由でデータをやり取りする時なんでしょうかね? 他にはシミュレーションゲームで複雑なforループに関係したとことか… 外部からデータを読み込まない簡単なゲームには必要無いって事は理解したっす
108 名前:Now_loading...774KB mailto:sage [2010/04/09(金) 20:42:19 ID:s6a1IM58.net] 一ついえるのは、ある処理において例外が発生するか否かを 実行前に簡単にチェック出来る場合は、制御構造としてtry- catchは使うべきではないということ。 例えば>>100 の例であればtry-catchで囲む代わりにアクセス したいインスタンスとやらにアクセスする前にそれがnullでは ないか事前条件としてチェックするのが適切。 仮にnullだった場合にcatch節に書いていた処理を実行すれば try-catchを使わずとも基本的に等価な制御を実現できる。 例外処理は毎度例外オブジェクト生成してスタックトレースを 積み上げる必要があるので、意外と重い処理。 なので「複雑なforループ」とやらの中で便利な大域ジャンプ 的に使うのもあまりお薦めしない。 例外という名前の通り、例外的なケースに限って使うべきでは。
109 名前:Now_loading...774KB mailto:sage [2010/04/17(土) 01:07:26 ID:7ysH8U9N.net] cashAsBitmapってどこにどう書くの? MovieClipのコンストラクタに cashAsBitmap = true; って書いても未定義とか言われるんだけど
110 名前:Now_loading...774KB mailto:sage [2010/04/17(土) 01:15:50 ID:7ysH8U9N.net] ごめん、変なサイトからコピペしたからスペル違うじゃん…
111 名前:Now_loading...774KB mailto:sage [2010/04/17(土) 19:48:47 ID:pS1T+xD5.net] どういう事だお ヘルプ見れ
112 名前:Now_loading...774KB mailto:sage [2010/04/18(日) 12:21:21 ID:ha422Phb.net] >>111 MovieClip は AS2 との互換性のために dynamic クラスとなっているから、 実行時に宣言してい変数を使おうとすると勝手に作っちゃうわけだ。 >>108 は cach"e"AsBitmap を true にして有効化しようと思ったのだろうが、 cashAsBitmap = true; って書いたために、新しく cashAsBitmap 変数ができたって話。
113 名前:Now_loading...774KB mailto:age [2010/05/19(水) 13:25:12 ID:vRTmjzhI.net] nextFrameと prevFrameについて教えて下さい(CS3、AS3) nextFrameとprevFrameを使い トゥイーンで動かしている ”頭MC” があり 頭MCの中は目、口等があり フレームで回している(目パチ等) 頭MC内のフレームには this.stop();等の再生ヘッドを止めるスクリプトは使われていない 頭MCを毎フレーム nextFrame();してもMC内部には影響無し 表情が動いている しかし毎フレーム prevFrame();するとMC内部のフレームが止まってしまう (prevFrame();を中止すると MC内部の止まっていたフレームから再生ヘッドが動き出す) (フレーム上に複数ある頭MCは同じインスタンスを使用 インスタンス名もすべて同じ) このprevFrame時の不具合を回避する手段があったら教えて下さい
114 名前:Now_loading...774KB mailto:sage [2010/05/23(日) 15:34:22 ID:ET963wlW.net] 謎の現象について少し判明したので報告 どうやら親MCがモーショントゥイーンでフレーム移動すると 子MC内部のフレームが遅延するようなのです 親MCがplay()で通常移動の場合 親 5f 子 5f 親 6f 子 6f 親 7f 子 7f 親 8f 子 8f 親 9f 子 9f つづく
115 名前:Now_loading...774KB mailto:sage [2010/05/23(日) 15:35:13 ID:ET963wlW.net] 親MCがgotoAndPlay()すると 親 5f 子 5f 親 6f 子 6f ここから親gotoAndPlay(20) 親 20f 子 6f ※遅延発生 親 21f 子 7f 親 22f 子 8f 親MCが連続でnextFrame()移動 親 5f 子 5f 遅延し続け動かない 親 6f 子 5f(prevFrame()の時も同様に動かない) 親 7f 子 5f 親 8f 子 5f 親 9f 子 5f
116 名前:Now_loading...774KB mailto:sage [2010/05/23(日) 15:36:18 ID:ET963wlW.net] ボタン押しての再生、逆再生したい場合などprevFrameが欠かせません 親MC移動時に子MCが動かなかったら使い物にならないじゃないかw (ただのアニメの逆再生ならグラフィックインスタンスのループで済むが 子MCは独立で制御させたい ゲーム等では必要不可欠) これはCS3だからなのか CS4以降では改善されてるんでしょうか?
117 名前:Now_loading...774KB mailto:sage [2010/05/23(日) 18:35:13 ID:DyKStVW9.net] >>116 いっそのこと、子をたどって そいつが MovieClip だったら currentFrame を見て 2以上なら prevFrame(), 1 なら最後のフレームに再生ヘッド移してあげればいいんじゃないかな。
118 名前:Now_loading...774KB mailto:sage [2010/06/28(月) 15:47:18 ID:YW2VUKmO.net] 俺も最初AS3とか無理wwwって思ってたけど、やってくうちに慣れるもんだな むしろ今じゃAS3のが書きやすいし、AS2の処理速度はつらいなーと感じることもしばしば wonderflとか眺めてるだけで楽しいしAS3頑張ってよかったよ
119 名前:Now_loading...774KB [2010/07/22(木) 07:54:08 ID:/cA812PA.net] マジで?このスレの人って天才? 俺、プログラムするのコレが初めてでFLASHは昔から使ってるからAS3を選んだんだけど、正直さっぱりわからん。 本を買ってきて、ボタンを押したら動くという基礎的なのを作ったんだけど、 その言語でさえ、本を見なければわからない(本を見ながらなら作れる)。 言語とか全部把握してるの? gotoAndPlayとかも頭で考えると同時に指が反応するのかな? ふ〜…WordとかExcelが子供だましに思えるぐらいの難易度だ…。 真面目にどうやってこんなの覚えた? 本のまま、同じ方法で作るのなら出来るけど、直ぐに作り方を忘れてしまう。 イラレ、フォトショ、クォーク、FLASH、DW、Word、Excel、他色々使えるけど、 これらとは違う次元の感じがする。 このスレでAS3の言語書いてる人いるけど、暗号にしか見えない。 どうやって覚えた?本気で知りたい。
120 名前:Now_loading...774KB mailto:sage [2010/07/22(木) 13:00:39 ID:JwqbKq8a.net] いきなりAS3はキツイだろな AS1はそのまんまスクリプトって感覚なんだろうけど AS3は完全なプログラミング言語なんだお バリバリ使いこなせている人はJavaやC++の経験者 もしくはAS1からAS2にステップアップしてOOPを理解、習得した人が大半だと思う >言語とか全部把握してるの? プロ以外はそんな事ないんじゃないか? 言語全体の骨格を把握しているんだと思う 「こんな処理をしたい」と思ったらだいたいのクラスは思いついて あとはヘルプで詳細を調べる ヘルプ無しじゃどうしようもないな ヘルプに親しめば上達は早いお ちなみにヘルプを全部紙媒体にしたら本棚が埋まるかもw
121 名前:Now_loading...774KB mailto:sage [2010/07/22(木) 13:49:44 ID:eFk7pOBt.net] >>119 いきなり全体を理解しようとしないで、とりあえず必要な部分から覚えて行けばいいと思うよ。 自分の場合、はじめに「標準 ActionScript3.0入門」を読んで何となく概念を把握したのち、 作りたいものを具体的に決めて「逆引きクイックリファレンス」なんかを引きながら実制作、 不具合が出る度に原因を考えて…を繰り返している内に基本文法が身に付いた。 個人的には、リファレンス本に書いてあるサンプルをなぞるんじゃなくて 自分で作りたいものを決めて、どうすれば実現できるのかを考えていくようにすると 理解が早いような希ガス(スクリプトが自己流になる危険性はあるけど)
122 名前:119 [2010/07/23(金) 00:17:13 ID:PU7hwnze.net] >>120 >>121 ありがとうございます。 なるほど、つまりAS1やAS2とは作りそのものが違うということですか… こんなの出来るのかな…一週間ぐらい触ってるけど上達してる気が全くしない。 本はアマゾンで評判が良かった 速習webデザイン ActionScript3.0 を買いました。 学習というよりも本を見ながらの作業的なんですよね。 やはり121氏のとおり、自分で作りたいものを決めて、探しながら作る方が上達するのかな… まあ、俺自身がアクションスクリプトを覚えたいというよりも、 アクションスクリプトで作りたいものがあるから始めたのでその方が都合が良いんですよね。 日記みたいなこと書きましたが、物凄いヒントになりました。 感謝します。
123 名前:Now_loading...774KB [2010/08/14(土) 16:25:29 ID:iuqEyi85.net] 定期あげ このスレ専ブラだと灰色になってる どうしたんだ壊れたのか?
124 名前:Now_loading...774KB [2010/10/05(火) 02:05:31 ID:RSV3BhvH.net] デザインパターンの本買ってきた、むずすぎだけど、 flasherにはためになる本だ
125 名前:Now_loading...774KB mailto:sage [2010/10/05(火) 12:23:30 ID:yn9u6SKF.net] >>124 flasher って露出狂って意味だよw 判っている奴は使わない表現
126 名前:Now_loading...774KB mailto:sage [2010/10/05(火) 18:45:34 ID:rKKy2Bzn.net] >>124 は判ってて二重の意味でflasherなんだよ
127 名前:Now_loading...774KB mailto:sage [2010/10/06(水) 15:29:52 ID:1Ggu1VfW.net] レビュー見る限り質が低そうだけど・・・
128 名前:Now_loading...774KB [2010/10/07(木) 01:30:46 ID:b36cAP3O.net] AS3.0がむずかしいという人はライブラリを使えば いいよ。 楽だよ。
129 名前:Now_loading...774KB [2010/11/16(火) 23:13:21 ID:bIJa4bR/.net] container = new ObjectContainer3D( ini ); コンパイルエラー 1000: iniへの参照があいまいです。 あいまいってどういう事なんだろw このエラーは初めて見たな あいまいな質問で申し訳ないんだけど ピーンと来た人なんか教えてくだせえ
130 名前:Now_loading...774KB mailto:sage [2010/11/17(水) 04:59:00 ID:Vq0Ek5tC.net] 名前空間の問題かな?
131 名前:Now_loading...774KB [2010/11/26(金) 17:45:17 ID:2mE2whr8.net] CS3/AS3 教えて下さい import fl.controls.Button; var bn:Button = new Button(); //1172: 定義 fl.controls:Button が見つかりません。 //1046: 型が見つからないか、コンパイル時定数ではありません : Button。 //1180: 未定義である可能性が高いメソッド Button の呼び出しです。 メインタイムラインでもクラスファイルでもだめ 定義が見つからないってどういう事?
132 名前:Now_loading...774KB mailto:sage [2010/11/26(金) 19:49:15 ID:Ziv6huS9.net] >>131 勉強汁 ttp://help.adobe.com/ja_JP/AS3LCR/Flex_4.0/compilerErrors.html
133 名前:Now_loading...774KB mailto:sage [2010/11/26(金) 20:07:45 ID:2mE2whr8.net] >>132 どうも! 環境設定でクラスパス指定したのに認識しません(Win VISTA) これじゃダメなの? $(AppConfig)/ActionScript 3.0/Component Source/ActionScript 3.0/User Interface これもだめだったです なんで? $(AppConfig)/ActionScript 3.0/Component Source/ActionScript 3.0/User Interface/fl
134 名前:Now_loading...774KB mailto:sage [2010/11/26(金) 20:34:13 ID:2mE2whr8.net] これでできました… ググッてググってやっと見つけました $(AppConfig)/Component Source/ActionScript 3.0/User Interface …で やっと本題なんですが こういう事はできないんですねorz if ( btn[ i ] is SimpleButton ){ btn[ i ] = Button( btn[ i ] );//強制型変換に失敗しました。 } 何をやりたいのかというと ボタンインスタンス(SimpleButton)にプロパティを追加したいという事なのです ムービークリップなら問題なく追加できるんですが… DisplayObjectに型変換しても無理でした 何か方法があったら教えて下さい
135 名前:Now_loading...774KB [2010/11/27(土) 11:37:05 ID:PEPTp1g+.net] 昨日のつづき プロパティを追加できる自作ボタンクラスを作ったんですがSimpleButtonからキャストできません クラスの作りかたがダメなんでしょうか? package{ import flash.display.SimpleButton; public dynamic class SimplePropertyButton extends SimpleButton{ public function SimplePropertyButton(){ super(); } } } 他の処理 if ( btn[ i ] is SimpleButton ){//ボタン検出したら(ムービークリップの場合は素通り) var bf :SimpleButton = new SimplePropertyButton();//× 強制型変換に失敗しました var bf :SimplePropertyButton = new SimpleButton();//× 関連しない可能性が高い型 〜 に暗黙で型変換されています var bf :SimplePropertyButton = new SimplePropertyButton();//× 次の行で 強制型変換に失敗 bf = SimplePropertyButton( btn[ i ] );//キャスト btn[ i ] = bf;//内容を元に戻す } btn[ i ].foo = プロパティ追加
136 名前:Now_loading...774KB mailto:sage [2010/11/28(日) 20:48:47 ID:rtoedXWu.net] SimpleButtonはダイナミックではないので、プロパティを追加するのは無理です
137 名前:Now_loading...774KB mailto:sage [2010/12/18(土) 11:57:12 ID:37p+EwWE.net] 型変換すると独自に設定したプロパティは消えちまうの? //初期設定時にプロパティfooを設定(型はリンケージで設定した独自の型 DisplayObjectと互換性有り) trace( "name: "+event.target.name+" foo: "+event.target.foo );//fooプロパティ表示される var targetE :DisplayObject = event.target as DisplayObject;//型変換 trace( "name: "+targetE.name+" foo: "+targetE.foo );//エラー fooプロパティ無し
138 名前:Now_loading...774KB [2010/12/21(火) 18:18:49 ID:6+PFQTFO.net] >>137 独自の型には foo プロパティが定義されているけどもDisplayObject 型には定義されていないので、 DisplayObject として扱っているときは(データはあるけども)見に行けない様にしているだけ。 (AS3 ではタイプミスとかの為に、指定した型で存在しないプロパティやメソッドはコンパイルエラーで叩く) // Event.target は Object 型なので、実行時に指定した名前 (この場合は name や foo) があれば見に行く。 // Object 型は特殊で、いかなる時も実行時にあればおkとしてくれる。(「ランタイムアクセス」に勝手になるため) trace( "name: "+event.target.name+" foo: "+event.target.foo ); // 型変換とは、まるでその型であるかのように振る舞うように型にはめるもの。 // この場合は DisplayObject を扱っているかのようにする。 var targetE :DisplayObject = event.target as DisplayObject; // ここで、DisplayObject 型には foo プロパティは定義されていないので、直接見ることはできない。 // ※ foo プロパティは独自の型で新しく定義されているため。 // trace( "name: "+targetE.name+" foo: "+targetE.foo ); // そこで、リンゲージで指定した型 (仮に Mogera とする) にもう一度型変換することで、 // そのオブジェクトを Mogera を扱うようにすることで foo を見に行ける。 trace("name: " + targetE.name + " foo:" + (targetE as Mogera).foo); // ただ、子クラスに型変換をする場合、DisplayObject を継承していないと型変換に失敗する。 // as 演算子だと null になるから null チェックが必要だけど、エラーにしてほしいときは // 型名( 変換したいもの ) とすると型変換ができないときはエラーが出る。 trace("name: " + targetE.name + " foo:" + Mogera(targetE).foo); // Object 型の時の様にランタイムアクセスをするために、[] アクセス演算子を使うという手もある。 // ただ、コンパイルエラーが出なくなるし、パフォーマンスが落ちる事が多いので、 // 出来れば、ちゃんと型変換をしてあげればいい。 trace("name: " + targetE.name + " foo:" + targetE["foo"]); // ちなみに、DisplayObject と互換性ありと表現したそれは、「DisplayObject を継承」ってことだよね。
139 名前:Now_loading...774KB [2010/12/21(火) 18:20:28 ID:6+PFQTFO.net] あ、ミスった。 誤: // ただ、子クラスに型変換をする場合、DisplayObject を継承していないと型変換に失敗する。 正: // ただ、子クラスに型変換をする場合、Mogera を継承していないと型変換に失敗する。