ActionScript 3.0 とか絶対ムリwwwPart2
1Now_loading...774KB
2009/02/15(日) 20:01:57ID:1/O2Tz9q 反省はしていない
2009/07/06(月) 17:27:43ID:aimW2YJY
ちょっと教えてくれないか?(AS3)
oyaMC の中に koMC があって oyaMC全体をボタンにしたい
oyaMCクリック後にoyaMC内のフレームを変えたいんだけど 中のkoMCにポインタが合っていると
ターゲットがkoMCになってしまい困っている 回避するにはどうすればいいの?
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
public function mClick( event :MouseEvent ):void{
trace(event.target);//koMCが検出されてしまう
}
oyaMC の中に koMC があって oyaMC全体をボタンにしたい
oyaMCクリック後にoyaMC内のフレームを変えたいんだけど 中のkoMCにポインタが合っていると
ターゲットがkoMCになってしまい困っている 回避するにはどうすればいいの?
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
public function mClick( event :MouseEvent ):void{
trace(event.target);//koMCが検出されてしまう
}
2009/07/06(月) 17:52:13ID:y/e7LnEt
oyaMC.mouseChildren = falseを加える
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
oyaMC.mouseChildren = false;
public function mClick( event :MouseEvent ):void{
trace(event.target);
}
もしくは、mClick内で直接oyaMCを呼ぶ。
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
public function mClick( event :MouseEvent ):void{
trace(oyaMC);
}
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
oyaMC.mouseChildren = false;
public function mClick( event :MouseEvent ):void{
trace(event.target);
}
もしくは、mClick内で直接oyaMCを呼ぶ。
oyaMC.addEventListener ( MouseEvent.CLICK, mClick );//リスナー登録
public function mClick( event :MouseEvent ):void{
trace(oyaMC);
}
2009/07/06(月) 17:54:23ID:aimW2YJY
ありがとう やってみる!
2009/07/07(火) 08:49:59ID:h1DhF5XX
イベントハンドラの中で直で oyaMC を見てしまうって言う直球な方法も
2009/07/17(金) 15:39:53ID:+tKqCcp2
知ってたら教えてくれないか…
コンポーネントのScrollPaneを使ってるんだけど
表示枠に薄く影が付いてるんだ その装飾部(外枠とか)を改造したいんだけど
どこのクラスに装飾関係のプロパティがあるのかわからないっす
ScrollPane→BaseScrollPane→UIComponent クラスへと親を調べても無いっす
どこにあんの?
コンポーネントのScrollPaneを使ってるんだけど
表示枠に薄く影が付いてるんだ その装飾部(外枠とか)を改造したいんだけど
どこのクラスに装飾関係のプロパティがあるのかわからないっす
ScrollPane→BaseScrollPane→UIComponent クラスへと親を調べても無いっす
どこにあんの?
2009/07/17(金) 16:54:33ID:+tKqCcp2
コンポーネントの絵自体を編集すりゃいいのかorz
30Now_loading...774KB
2009/07/19(日) 20:57:40ID:G62YNgUj situmon
31Now_loading...774KB
2009/07/19(日) 21:01:54ID:G62YNgUj 質問です。AS3 で、透過色が指定された、例えばキャラクターのBitmapDataを、
背景のBitmapData に重ねて一つの BitmapDataにするにはどうしたらいいんでしょうか。
copyPixels を使うと、キャラクターの透過部分が透過されず背景に上書きされてしまい、
threshold は、閾値の条件に該当するピクセルを別の単一な色に置き換える処理なので今回は不適当
・・ひょっとして無理なんでしょうか
背景のBitmapData に重ねて一つの BitmapDataにするにはどうしたらいいんでしょうか。
copyPixels を使うと、キャラクターの透過部分が透過されず背景に上書きされてしまい、
threshold は、閾値の条件に該当するピクセルを別の単一な色に置き換える処理なので今回は不適当
・・ひょっとして無理なんでしょうか
2009/07/19(日) 21:12:15ID:G62YNgUj
>>31 の件自決しました・・・ copyPixels で単に第6引数を true にしたら上手く行きました
忘れてた・・・orz
忘れてた・・・orz
2009/08/07(金) 16:33:29ID:MsDX6d6+
う〜〜んわからん! あやふやな質問なんだけど教えてくれないか
誤作動が多くて困っている 作り方がまずいのだろうか?
メインタイムラインの10f、20f、30fに各MCがあって メインクラスから
ルートのcurrentFrameを判別してそれぞれの各MCの制御をしている
10fに配置されたMCをメインクラス内で 制御クラスとしてnewし制御 20fに移行する時は
10fでリスナー登録したイベントはすべてremoveListenerして newした処理クラスはnullに
20f移動後も同じように …という感じっす
制御クラス内のリスナーイベントを全てリムーブリスナー 制御クラスオブジェクトをnull だけで
メモリが開放されて 全て無くなった事になるのか? 何かが生きていて誤動作の原因に
なってはいないのか? その辺に詳しい人がいたら教えてくれないか?
誤作動が多くて困っている 作り方がまずいのだろうか?
メインタイムラインの10f、20f、30fに各MCがあって メインクラスから
ルートのcurrentFrameを判別してそれぞれの各MCの制御をしている
10fに配置されたMCをメインクラス内で 制御クラスとしてnewし制御 20fに移行する時は
10fでリスナー登録したイベントはすべてremoveListenerして newした処理クラスはnullに
20f移動後も同じように …という感じっす
制御クラス内のリスナーイベントを全てリムーブリスナー 制御クラスオブジェクトをnull だけで
メモリが開放されて 全て無くなった事になるのか? 何かが生きていて誤動作の原因に
なってはいないのか? その辺に詳しい人がいたら教えてくれないか?
2009/08/07(金) 17:34:45ID:TLlPg3ia
3533
2009/08/07(金) 19:21:46ID:MsDX6d6+ レスどうもっす
removeChildはしているっす ググッて調べてみたら removeChildだけでは
完全に消えなくて Deleteを使わないとダメという記述を見つけました
引き続き格闘してみます
removeChildはしているっす ググッて調べてみたら removeChildだけでは
完全に消えなくて Deleteを使わないとダメという記述を見つけました
引き続き格闘してみます
2009/08/07(金) 20:06:29ID:TLlPg3ia
>>35
いや、deleteは動的プロパティの削除だから、ここでは関係ないはず。
どこかに、オブジェクトの参照が残ってる可能性大。
全部の参照が消えないと、ガーベッジの対象にならないよ。
後は、情報が少ないので詳しい事は全く分からん。
基本的に、addEventListenerした物は、removeEventListnerすれば、
イベントを拾う事はなくなる。
いや、deleteは動的プロパティの削除だから、ここでは関係ないはず。
どこかに、オブジェクトの参照が残ってる可能性大。
全部の参照が消えないと、ガーベッジの対象にならないよ。
後は、情報が少ないので詳しい事は全く分からん。
基本的に、addEventListenerした物は、removeEventListnerすれば、
イベントを拾う事はなくなる。
2009/08/08(土) 14:14:13ID:vqvLf49M
private function buttonOn( event :MouseEvent ) :void{//ボタン押した時のメソッド
var do :DisplayObject = event.target;//型変換できず エラー
var do :Object = event.target;//トレース時にエラー
var do2 :DisplayObject = do;//意味無し エラー
trace("buttonON: "+ container.getChildIndex( do ) );//コンテナはSprite 定義済み
}
わからん! コンテナのインデックスを見たいんだ どうすればいいの?
var do :DisplayObject = event.target;//型変換できず エラー
var do :Object = event.target;//トレース時にエラー
var do2 :DisplayObject = do;//意味無し エラー
trace("buttonON: "+ container.getChildIndex( do ) );//コンテナはSprite 定義済み
}
わからん! コンテナのインデックスを見たいんだ どうすればいいの?
2009/08/08(土) 14:45:28ID:vqvLf49M
var do :DisplayObject = DisplayObject( event.target );
↑強制型変更に成功した! でも新たに↓のエラーが出たな
ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。
これは始めて見るエラーだ… 子ってなによ? わけわからん
↑強制型変更に成功した! でも新たに↓のエラーが出たな
ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。
これは始めて見るエラーだ… 子ってなによ? わけわからん
2009/08/08(土) 15:01:44ID:vqvLf49M
できたあああ parent付けたら見れた!
trace("buttonON: "+ container.getChildIndex( do.parent ) );
子でなければなりません。 って言ってんのになぜ親を参照したら見れたのか
わからんが とにかくお騒がせして申し訳なかった…
trace("buttonON: "+ container.getChildIndex( do.parent ) );
子でなければなりません。 って言ってんのになぜ親を参照したら見れたのか
わからんが とにかくお騒がせして申し訳なかった…
4033
2009/08/10(月) 01:05:04ID:B0X8ZcOd どうも〜 相変わらず誤作動の多い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
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
2009/08/10(月) 04:00:00ID:ejJQWie8
>>40 外してるかもしれないけど、そもそもなんでnameプロパティ見てるの?
var mc1:MovieClip;
var mc2:MovieClip;
var mc3:MovieClip;
に対して mc1.ほげほげ() じゃダメなの?
var mc1:MovieClip;
var mc2:MovieClip;
var mc3:MovieClip;
に対して mc1.ほげほげ() じゃダメなの?
2009/08/10(月) 04:11:39ID:ejJQWie8
>>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;
}
}
[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;
}
}
2009/08/10(月) 09:57:37ID:/i4wb6H5
そういえばname属性なんて、AS3では使った事ないわ。
44Now_loading...774KB
2009/08/10(月) 10:11:14ID:yeEQWR3d 質問です。
最近AS3.0を始めて、書籍を数冊読みつつやっとこさっとこEventListenerでmcを動かす程度は理解出来るようになりました(概念的な部分はかなり不十分ですが…)
そんな自分にかなりの無茶振りをされて、どうしたら良いものかと悩んでいます。
その内容と言うのが、
1:背景はアニメーション(背景が動く程度)+文言←これが数回続く
2:1の動きの後に各コンテンツに移動する為の項目が出てくる
3:2からコンテンツに移動するとPOPUP、他サイトをキャプチャした画像がFlash内一面に表示される(Flash内右側にスクロールバー、下にフッター)
4:3を下に移動させて行くとある特定の場所でフッタのコメントが切り替わる+フッタのパーツがアニメーション(ちなみに画像をクリックするとそのサイトにジャンプするようにする)
以上を表現する為には最低限何が必要でしょうか?
漠然とした質問なのは重々承知なのですが、作成する流れだけでも掴めればと思い質問しました。
先輩方、どうかご教授お願い致します。
最近AS3.0を始めて、書籍を数冊読みつつやっとこさっとこEventListenerでmcを動かす程度は理解出来るようになりました(概念的な部分はかなり不十分ですが…)
そんな自分にかなりの無茶振りをされて、どうしたら良いものかと悩んでいます。
その内容と言うのが、
1:背景はアニメーション(背景が動く程度)+文言←これが数回続く
2:1の動きの後に各コンテンツに移動する為の項目が出てくる
3:2からコンテンツに移動するとPOPUP、他サイトをキャプチャした画像がFlash内一面に表示される(Flash内右側にスクロールバー、下にフッター)
4:3を下に移動させて行くとある特定の場所でフッタのコメントが切り替わる+フッタのパーツがアニメーション(ちなみに画像をクリックするとそのサイトにジャンプするようにする)
以上を表現する為には最低限何が必要でしょうか?
漠然とした質問なのは重々承知なのですが、作成する流れだけでも掴めればと思い質問しました。
先輩方、どうかご教授お願い致します。
4533
2009/08/10(月) 17:32:41ID:B0X8ZcOd どうも! 不具合だらけの33っす
>>44
要するに中規模で複雑な操作が必要な「やっかなモノ」って事ですな
おれも中規模程度で複雑なモノの製作でがんがっているっす
最低限何が必要なのかはまったくわからないが 作り始めないと前へは進めないお
お互いがんがろー
>>41
レスどうもっす! nameプロパティを見るのは var mc1:MovieClip;のような
変数名が存在しないからなのです 外部読み込みのMCの数は数百にも及び
空のMC、もしくはSpriteオブジェクトのコンテナにその都度読み込み 操作したい
というのが目的っす
で 現在 インスタンスの構造を列挙するメソッドを作って調べようと試みてるのですが
またまた困っております 誰かお助けをorz
>>44
要するに中規模で複雑な操作が必要な「やっかなモノ」って事ですな
おれも中規模程度で複雑なモノの製作でがんがっているっす
最低限何が必要なのかはまったくわからないが 作り始めないと前へは進めないお
お互いがんがろー
>>41
レスどうもっす! nameプロパティを見るのは var mc1:MovieClip;のような
変数名が存在しないからなのです 外部読み込みのMCの数は数百にも及び
空のMC、もしくはSpriteオブジェクトのコンテナにその都度読み込み 操作したい
というのが目的っす
で 現在 インスタンスの構造を列挙するメソッドを作って調べようと試みてるのですが
またまた困っております 誰かお助けをorz
4633
2009/08/10(月) 17:36:01ID:B0X8ZcOd 現在作っているインスタンスの構造を列挙(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"としか判別されない
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"としか判別されない
2009/08/10(月) 20:23:24ID:e6umgfua
2009/08/10(月) 20:54:17ID:sklC6EUR
>>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)
コンテナかどうかを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)
5033卒業
2009/08/18(火) 01:42:23ID:YGY09j4u どうも33でつ この度みなさんのアドバイスのおかげでやっと不具合が無くなりました
>適当な変数に読み込んだMovieの参照を持っといてそれ操作するのが普通じゃね?
の アドバイスで外部読み込みのswfをすべて個別にアクセス用の入れ物MCに書き込ませて
成功しました 結局確たる不具合の原因はわかりませんでしたが 何かの参照が生きていたのでしょう
以前の 読み込んだモノに直接ボタン関係のリスナー登録やremoveChildがまずかったようです
一つ賢くなりました
>>48さんの列挙メソッドもコンテナの内部チェックでとても役に立ちました これはC++とかでフォルダの
階層を探るような場合に使ったりするんでしょうか 関数内で自らの関数を呼べるなんて知りませんでした
まだ全然製作途中ですが… みなさん本当にありがとうございました〜
>適当な変数に読み込んだMovieの参照を持っといてそれ操作するのが普通じゃね?
の アドバイスで外部読み込みのswfをすべて個別にアクセス用の入れ物MCに書き込ませて
成功しました 結局確たる不具合の原因はわかりませんでしたが 何かの参照が生きていたのでしょう
以前の 読み込んだモノに直接ボタン関係のリスナー登録やremoveChildがまずかったようです
一つ賢くなりました
>>48さんの列挙メソッドもコンテナの内部チェックでとても役に立ちました これはC++とかでフォルダの
階層を探るような場合に使ったりするんでしょうか 関数内で自らの関数を呼べるなんて知りませんでした
まだ全然製作途中ですが… みなさん本当にありがとうございました〜
2009/08/27(木) 12:11:20ID:qVSQpBIM
2.0から3.0に移行するのにおすすめのサイトとかないの?
こんな違いに注意、とか
こんな違いに注意、とか
2009/08/27(木) 13:12:47ID:cr40xepZ
ttp://www.adobe.com/jp/devnet/flash/articles/first_as3_application.html
ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/migration.html
この辺かな? 次回からテンプレに載せよう
ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/migration.html
この辺かな? 次回からテンプレに載せよう
2009/08/27(木) 13:57:24ID:qVSQpBIM
>>52 おおこんなはやく多謝
正直ググれカスって帰ってくると思った
将来的には3.0しか残らないならそろそろ3.0はじめてみようかな
前スレってこれかな
http://unkar.jp/read/pc11.2ch.net/swf/1151840424
正直ググれカスって帰ってくると思った
将来的には3.0しか残らないならそろそろ3.0はじめてみようかな
前スレってこれかな
http://unkar.jp/read/pc11.2ch.net/swf/1151840424
2009/10/20(火) 18:55:20ID:XJYo53ko
あーもうただ動画再生するだけなのになんでこんなややこしいもの覚えなきゃ何ねーんだああ
2009/10/20(火) 23:24:06ID:Ym/K5BOb
ActionScript以外の言語や、そもそもライブラリ自体が揃ってないような言語で
動画再生することを考えるといい。 そもそも動画を再生するロジックが既に用意されてる時点で、相当簡単なはずなのだ
動画再生することを考えるといい。 そもそも動画を再生するロジックが既に用意されてる時点で、相当簡単なはずなのだ
2009/10/26(月) 16:38:24ID:E3J+/yIB
AS3は触ってみると以外とすぐ慣れるよ
2009/11/15(日) 17:29:53ID:6GNc50Ep
おれはas3も覚えたが、as3はプログラマーのためのものとつくづく思うよ。
もともとflashはデザイナーが、高度なプログラミングの知識など無くても
比較的簡単にアニメーションやインタラクティブwebが作れる環境として発展したきたはずだけど
as3は基本的に真性プログラマー前提だわな。
大規模なwebアプリケーションを分業のもとに開発するケースが増えた時代の要求なんだろうけど、
プログラマーではなく、デザイナー兼そこそこプログラミングって感じで、
コンパクトな仕事やってきた個人には使いづらいものになってしまった、と思う・・・
もともとflashはデザイナーが、高度なプログラミングの知識など無くても
比較的簡単にアニメーションやインタラクティブwebが作れる環境として発展したきたはずだけど
as3は基本的に真性プログラマー前提だわな。
大規模なwebアプリケーションを分業のもとに開発するケースが増えた時代の要求なんだろうけど、
プログラマーではなく、デザイナー兼そこそこプログラミングって感じで、
コンパクトな仕事やってきた個人には使いづらいものになってしまった、と思う・・・
2009/11/15(日) 17:36:57ID:6GNc50Ep
正直as3の実行速度がどうしても必要な場合以外は、as2が効率的と思うよ。
アドビもわかってやってると思うから、
もしas2無くすときは、代わりにかつてのlivemotionみたいな
デザイナーのためのflashツール出す気がする。
アドビもわかってやってると思うから、
もしas2無くすときは、代わりにかつてのlivemotionみたいな
デザイナーのためのflashツール出す気がする。
2009/11/18(水) 11:51:22ID:W62VdS3m
呼び出し元のクラスや関数を知りたいんだ
phpのbacktraceみたいなメソッドてないんだっけ?
自作しかないなら作ってもらえないか? もしくはヒントだけでもよろです
phpのbacktraceみたいなメソッドてないんだっけ?
自作しかないなら作ってもらえないか? もしくはヒントだけでもよろです
2009/11/22(日) 22:24:51ID:MseXE1s7
2009/11/22(日) 22:26:26ID:MseXE1s7
2010/01/30(土) 01:21:03ID:tkhyDsLh
Flash超基本的な質問スレから
いままでタイムラインにスクリプト書いてましたが、
ドキュメントクラスを作って別の.asファイルに書いてみようと思っています。
フレーム1に書いてあるスクリプトが実行される→なんらかの動作をしてフレーム2に移動
→フレーム2にかいてあるスクリプトが実行される
のように書いていたのですが、ドキュメントクラスに書くときはこれはどうすればいいのでしょう?
private function frame1(){}
private function frame2(){}
と用意して
mainのコンストラクタに
frame1()
規定の動作があった
フレーム2に移動させる
frame2()
のようにフレームごとに関数化させるのでしょうか?
いままでタイムラインにスクリプト書いてましたが、
ドキュメントクラスを作って別の.asファイルに書いてみようと思っています。
フレーム1に書いてあるスクリプトが実行される→なんらかの動作をしてフレーム2に移動
→フレーム2にかいてあるスクリプトが実行される
のように書いていたのですが、ドキュメントクラスに書くときはこれはどうすればいいのでしょう?
private function frame1(){}
private function frame2(){}
と用意して
mainのコンストラクタに
frame1()
規定の動作があった
フレーム2に移動させる
frame2()
のようにフレームごとに関数化させるのでしょうか?
2010/01/30(土) 01:29:31ID:tkhyDsLh
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{}
てな感じなのでしょうか。
>>エンターフレームをリスナー登録して毎フレーム実行される関数を作って
>>そこからメインタイムラインを監視、制御させるんだお
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
2010/01/30(土) 11:39:27ID:ptvWHzPf それはおかしいな それじゃあ動かなかったろ?
おれのよく使うメインクラスを貼ってみるから参考にしてくれ
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
おれのよく使うメインクラスを貼ってみるから参考にしてくれ
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
6563
2010/02/01(月) 00:58:06ID:IqF3bliE >>64
ありがとうございます。
ドキュメントクラスではFooインスタンスをnewするだけってかんじですか?
enterframeって重いイメージがあるんですがこれくらいの判定なら屁みたいなもんなのかな
render イベントとかではだめですよね
個々のスクリプトが長くなるとやっぱり関数化します?
ありがとうございます。
ドキュメントクラスではFooインスタンスをnewするだけってかんじですか?
enterframeって重いイメージがあるんですがこれくらいの判定なら屁みたいなもんなのかな
render イベントとかではだめですよね
個々のスクリプトが長くなるとやっぱり関数化します?
2010/02/01(月) 11:02:00ID:YWEVhKxS
412でつ
ああドキュメントクラスでは作った事がないのでわからんす
64のは普通の外部クラスファイル読み込みでの方法
メインタイムラインから var f :Foo = new Foo( this, stage );
RENDERイベントは古いFlaプレーヤーだとバグるってお?
コードが長くなったら処理の系統毎にクラス分けすればおk
ああドキュメントクラスでは作った事がないのでわからんす
64のは普通の外部クラスファイル読み込みでの方法
メインタイムラインから var f :Foo = new Foo( this, stage );
RENDERイベントは古いFlaプレーヤーだとバグるってお?
コードが長くなったら処理の系統毎にクラス分けすればおk
6763
2010/02/04(木) 13:53:45ID:59GN4Hha2010/02/15(月) 01:07:30ID:xO91dKO9
質問です。
Loaderクラスで3つの外部の画像を同時に非同期読み込みして
ProgressEvent.PROGRESS と Event.COMPLETE で読み込み具合を監視しているのですが
・初めて読み込む画像は PROGRESS, COMPLETE の両方が呼ばれる
・キャッシュに残っていて即読み込める画像は PROGRESS のみ呼ばれる
という現象があり、COMPLETEが呼ばれないことがあって困っています。
おそらく下記URLと同じ現象だと思うのですが、回避方法わかる方いませんか?
ttp://www.pokipoki.org/blog/?p=23
Loaderクラスで3つの外部の画像を同時に非同期読み込みして
ProgressEvent.PROGRESS と Event.COMPLETE で読み込み具合を監視しているのですが
・初めて読み込む画像は PROGRESS, COMPLETE の両方が呼ばれる
・キャッシュに残っていて即読み込める画像は PROGRESS のみ呼ばれる
という現象があり、COMPLETEが呼ばれないことがあって困っています。
おそらく下記URLと同じ現象だと思うのですが、回避方法わかる方いませんか?
ttp://www.pokipoki.org/blog/?p=23
2010/02/15(月) 01:53:43ID:qwIUvL5P
Progressイベントてロード開始時と終了時の2回呼び出されると思ったが
Progressイベントで終了時呼ばれた時 event.bytesLoaded と event.bytesTotalを
比較してイコールなら完了! てのはだめかな? 試してないが…
Progressイベントで終了時呼ばれた時 event.bytesLoaded と event.bytesTotalを
比較してイコールなら完了! てのはだめかな? 試してないが…
7068
2010/02/16(火) 01:30:16ID:nOI6PjdN >>69
イコールなら完了!としても、Loader.contentLoaderInfo.contentType が null なので心配です…。
PROGRESSイベントは使わずCOMPLETEイベントだけ監視するようにすると
ちゃんとCOMPLETEは来るようです。
イコールなら完了!としても、Loader.contentLoaderInfo.contentType が null なので心配です…。
PROGRESSイベントは使わずCOMPLETEイベントだけ監視するようにすると
ちゃんとCOMPLETEは来るようです。
2010/02/18(木) 22:30:03ID:CM37KvUO
>>70
close()呼んだらどうなる?
close()呼んだらどうなる?
72Now_loading...774KB
2010/03/09(火) 07:42:57ID:3slVzMNg 今でも上野亨のActionScriptバイブルは読んだほうがいいの?
2010/03/15(月) 13:35:00ID:I8etU97M
2010/03/15(月) 18:02:48ID:9/T77r+s
AS3分かる人って尊敬しちゃう。
参考書を沢山買っても、やりたい事が出来ない私はおバカさんです。
参考書を沢山買っても、やりたい事が出来ない私はおバカさんです。
2010/03/15(月) 18:13:35ID:hgPWlJiY
>>74
数こなせ
数こなせ
2010/03/15(月) 19:13:27ID:bcc/+mzE
全てのクラス(名)が継承順に表記されてる表ってどっかになかったっけ?
4分割くらいでプリントアウトして繋げて壁に貼っておきたいんだが
4分割くらいでプリントアウトして繋げて壁に貼っておきたいんだが
2010/03/15(月) 20:48:52ID:hgPWlJiY
AS3 Class Diagram ViewerというAirがある
2010/03/17(水) 10:46:04ID:UYsjGtRS
79Now_loading...774KB
2010/03/18(木) 11:43:29ID:f6CGDWqp 教えてくれ ボタンインスタンスの再読み込み時にボタンが反応しないんだ
なぜなんだろなー…
@メインタイムラインに各画面がありそれぞれに色々なボタンを配置
メイン制御クラスで 各ボタンを配列でまとめて引数で渡してボタンクラスをnew
ボタンクラスではMOUSE_DOWN、MOUSE_OVER等をリスナー定義
Aボタン反応する
他の画面に移行する場合はボタンクラスですべてのボタンをリムーブリスナー
メイン制御クラスでnewしたボタンクラスインスタンスをnullし @に戻る
A他の画面でリセットボタンでデータをクリアし最初に戻る
ボタンクラスですべてのボタンをリムーブリスナー
メイン制御クラスでnewしたボタンクラスインスタンスをnull
メイン制御クラスもメインタイムライン側でnull
メインタイムラインを再び流してメインクラスをnew
@に戻ってAの段階でボタンが反応しなくなる
なぜなんだろなー…
@メインタイムラインに各画面がありそれぞれに色々なボタンを配置
メイン制御クラスで 各ボタンを配列でまとめて引数で渡してボタンクラスをnew
ボタンクラスではMOUSE_DOWN、MOUSE_OVER等をリスナー定義
Aボタン反応する
他の画面に移行する場合はボタンクラスですべてのボタンをリムーブリスナー
メイン制御クラスでnewしたボタンクラスインスタンスをnullし @に戻る
A他の画面でリセットボタンでデータをクリアし最初に戻る
ボタンクラスですべてのボタンをリムーブリスナー
メイン制御クラスでnewしたボタンクラスインスタンスをnull
メイン制御クラスもメインタイムライン側でnull
メインタイムラインを再び流してメインクラスをnew
@に戻ってAの段階でボタンが反応しなくなる
8079
2010/03/18(木) 15:06:54ID:f6CGDWqp だめだわからん 相変わらずリセット後のボタンが反応無しっすorz
リセット後もボタンクラスが生きてるのかと思い 怪しげな参照を片っ端からnullに、
ボタンクラス内のメンバ変数、リスナー関数をstaticにしてもボタンが反応無し
そもそもメインタイムラインからボタンが無くなるという仕様がダメなのか?
再読み込みで反応しないという経験がある人はヒントだけでもいいからよろっす
リセット後もボタンクラスが生きてるのかと思い 怪しげな参照を片っ端からnullに、
ボタンクラス内のメンバ変数、リスナー関数をstaticにしてもボタンが反応無し
そもそもメインタイムラインからボタンが無くなるという仕様がダメなのか?
再読み込みで反応しないという経験がある人はヒントだけでもいいからよろっす
2010/03/18(木) 18:05:00ID:RX1/xeNt
>>80 とりあえずそんな経験は全然無いんだけど、一つ気になった点
「ボタンインスタンスの再読み込み」 って、どうやってる?
// btn は本当はメンバだとして…
var btn:Button = new Button();
btn.addEventListener(略);
:
// 別の場所で…
btn.removeListener(略);
btn = null;
こういう状態なら、メインタイムラインもクソもまったく何も問題起こらない訳で
「ボタンインスタンスの再読み込み」 って、どうやってる?
// btn は本当はメンバだとして…
var btn:Button = new Button();
btn.addEventListener(略);
:
// 別の場所で…
btn.removeListener(略);
btn = null;
こういう状態なら、メインタイムラインもクソもまったく何も問題起こらない訳で
2010/03/18(木) 18:06:40ID:RX1/xeNt
あ、ちなみに >>81 のコード断片は、「インスタンスの再読み込み」 でなく、
「ボタンインスタンスを生成している」 状態。 あと、Button ってクラスは今便宜上そういう名前にしただけなので、
コピペで動くとかは無い、と一応念のため補足しとく
「ボタンインスタンスを生成している」 状態。 あと、Button ってクラスは今便宜上そういう名前にしただけなので、
コピペで動くとかは無い、と一応念のため補足しとく
8379
2010/03/18(木) 18:49:57ID:f6CGDWqp レスどうもです! 再読み込みは普通にインスタンスを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("プレイ画面");
}
ボタン等は静的に配置した物です 何か変なトコがあったらアドバイスよろっす
//メイン制御クラス タイトル画面の処理
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("プレイ画面");
}
2010/03/18(木) 18:58:10ID:RX1/xeNt
2010/03/24(水) 00:09:35ID:jF+1DgXj
a_mcとb_mcがあり、どちらもTweenで動いています。
a_mcの動きが終わったら、b_mcが動くというのをしたいのですが
どうすれば良いのでしょうか?
a_mcの動きが終わったら、b_mcが動くというのをしたいのですが
どうすれば良いのでしょうか?
2010/03/24(水) 01:21:45ID:GSBbnnia
すぐ上にあるだろ
onCompleteつかえよ
onCompleteつかえよ
87as
2010/03/26(金) 01:39:11ID:Ccvvwv2l 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で同様にするには、どうすればいいですか。
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で同様にするには、どうすればいいですか。
2010/03/26(金) 02:33:20ID:7nc1RbyI
ほらよ
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);
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);
89as
2010/03/26(金) 03:05:44ID:Ccvvwv2l2010/03/26(金) 09:59:59ID:x1zRaoNR
配列使えよ
2010/03/26(金) 15:52:56ID:DhbUuBx0
AS3って具体的に何ができるの?
自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり
派手な演出する以外に実用的な動きがAS3で実現できるなら
何か1つ具体例を出してくれないか?煽りじゃなくて疑問
自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり
派手な演出する以外に実用的な動きがAS3で実現できるなら
何か1つ具体例を出してくれないか?煽りじゃなくて疑問
2010/03/26(金) 16:52:46ID:CqOonTg0
>AS3って具体的に何ができるの?
Flash上で表現出来るもの、実質全部。ただし編集機能とか、そういう事ではなくて、
作品動作として、SWF上で動く内容全部。 要はプログラミングで何かを作るって事。
>自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり
>派手な演出する以外に実用的な動きがAS3で実現できるなら
>何か1つ具体例を出してくれないか?煽りじゃなくて疑問
ぎゅーんとだろうがぐぁーっとだろうが、上に書いたとおりの理由で何でも可能だけど、
要はプログラミングなので、そのつもりで勉強しないと無理。
入門者向けに言うと、まず変数とは〜から始まって、処理の条件分岐だとか繰り返しなどの構造に入って・・・
そこら辺はFlashと関係なく、プログラミングの基礎として理解したあと、Flash固有の機能を利用する方法に入る感じ。
もちろん、頭が柔軟なら、あるいは世間のチュートリアルなどではこの順序を逆にしてる所もあるし、
一緒に覚えてもらおうとしている所もあるし、そこは内容次第。
具体例は、世間の各種サイトで目にする全てのFlashだと思えばいい。
Flash上で表現出来るもの、実質全部。ただし編集機能とか、そういう事ではなくて、
作品動作として、SWF上で動く内容全部。 要はプログラミングで何かを作るって事。
>自分のサイト作ろうとしたときにFlashでぎゅーんと動かしたり
>派手な演出する以外に実用的な動きがAS3で実現できるなら
>何か1つ具体例を出してくれないか?煽りじゃなくて疑問
ぎゅーんとだろうがぐぁーっとだろうが、上に書いたとおりの理由で何でも可能だけど、
要はプログラミングなので、そのつもりで勉強しないと無理。
入門者向けに言うと、まず変数とは〜から始まって、処理の条件分岐だとか繰り返しなどの構造に入って・・・
そこら辺はFlashと関係なく、プログラミングの基礎として理解したあと、Flash固有の機能を利用する方法に入る感じ。
もちろん、頭が柔軟なら、あるいは世間のチュートリアルなどではこの順序を逆にしてる所もあるし、
一緒に覚えてもらおうとしている所もあるし、そこは内容次第。
具体例は、世間の各種サイトで目にする全てのFlashだと思えばいい。
2010/03/26(金) 18:14:13ID:7nc1RbyI
頂点の多い3Dとかはまだ無理なんだよな…
2010/04/01(木) 11:41:23ID:sHacLJsA
すいません教えてください!
MovieClipの参照が入っているArrayを、x座標順に並び変えたいのですが、
//mcArrayというArrayの中に、MovieClipが入っています。
var newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC);
とやると、「未定義のプロパティxへのアクセスです」
とエラーが出てしまします。
MovieClipの参照が入っているArrayを、x座標順に並び変えたいのですが、
//mcArrayというArrayの中に、MovieClipが入っています。
var newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC);
とやると、「未定義のプロパティxへのアクセスです」
とエラーが出てしまします。
2010/04/01(木) 11:52:49ID:jHFdhcQZ
var newMcArray:Array = new Array();
newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC);
newMcArray:Array = mcArray.sortOn(x, Array.NUMERIC);
96Now_loading...774KB
2010/04/01(木) 13:32:09ID:J643nL7+ 0除算したときや計算結果がNaN,Infinityになったとき
実行時エラーになるように設定できませんか?
環境 flashCS3,winXP
実行時エラーになるように設定できませんか?
環境 flashCS3,winXP
9794
2010/04/01(木) 13:56:55ID:sHacLJsA98Now_loading...774KB
2010/04/05(月) 23:48:41ID:k0m6RJbe a
2010/04/05(月) 23:53:40ID:k0m6RJbe
間違えて押しちゃいました・・・。
すごく初歩の初歩で申し訳ないんですけど
ロールオーバーはどうやるんでしょうか?
ロールオーバー前と後の2つのMCを切り替えたいんですが。
ぐぐっても、参考書にも書いてなくて。
すごく初歩の初歩で申し訳ないんですけど
ロールオーバーはどうやるんでしょうか?
ロールオーバー前と後の2つのMCを切り替えたいんですが。
ぐぐっても、参考書にも書いてなくて。
2010/04/08(木) 22:25:35ID:gCUfROet
質問っす
メインタイムラインにインスタンスを配置して画面を切り替える時にTypeErrorがよく出るんだけど↓
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
try〜catchで囲っておけば問題無いのかな? 1fps回ればエラーは出なくなるっす
エラー出るのは1回だけなのに そのままサイトにうpると警告が出て困るんだ
メインタイムラインにインスタンスを配置して画面を切り替える時にTypeErrorがよく出るんだけど↓
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
try〜catchで囲っておけば問題無いのかな? 1fps回ればエラーは出なくなるっす
エラー出るのは1回だけなのに そのままサイトにうpると警告が出て困るんだ
2010/04/08(木) 23:00:10ID:Th7APyuo
>>100
そもそもの作りを見直せ。それは多分、ローカルで実行してる分には早いから何も起きない(?)が、
web上で何かロードでもしてるような場合、タイムラグがあるのは当然として、それが例えば考慮されてないとか。
そのエラーは多分、「このタイミングならきっと出来てるよね」というオブジェクトが、出来ていない状態のまま
メソッドなりプロパティなりをアクセスしている不良コードなので、きちんと流れを見直して書き直した方がいいぜ
そもそもの作りを見直せ。それは多分、ローカルで実行してる分には早いから何も起きない(?)が、
web上で何かロードでもしてるような場合、タイムラグがあるのは当然として、それが例えば考慮されてないとか。
そのエラーは多分、「このタイミングならきっと出来てるよね」というオブジェクトが、出来ていない状態のまま
メソッドなりプロパティなりをアクセスしている不良コードなので、きちんと流れを見直して書き直した方がいいぜ
2010/04/08(木) 23:53:42ID:gCUfROet
がーん! まじですかい? 不良コードだったのか…
ちなみに try〜catchてどういう時に使うのが正解なの?
ちなみに try〜catchてどういう時に使うのが正解なの?
103Now_loading...774KB
2010/04/09(金) 04:03:16ID:ZbEkwPYF >>102
ActionScriptの世界は知らないけれども、より例外処理と関わる
機会の多いJavaの世界ではこんな事になっている。
http://d.hatena.ne.jp/amachang/20100325/1269492368
ActionScriptの世界は知らないけれども、より例外処理と関わる
機会の多いJavaの世界ではこんな事になっている。
http://d.hatena.ne.jp/amachang/20100325/1269492368
2010/04/09(金) 06:45:50ID:VvlDWTKu
なんで知らないやつがここにいるのかということのほうが興味ある
105101
2010/04/09(金) 09:12:52ID:3LXlHUvw >>102
1.この処理ははっきりと何か理由により、例外が発生する事がわかっている。その可能性がある事がわかっている時
… ASでは無いけど、例えばファイル入出力の処理とかで、『自分(アプリケーション)の関知しない所で』、
=例えば他のアプリケーションやOSの都合で、ファイルにアクセス出来ないような場合がある。
そんな時、「あらかじめわかっていて、かつ自分の範疇/都合で回避は出来ないから」 しかけたりする
2.そもそも意図して例外を発行するオブジェクトがあったとして、それを意図的にキャッチするような時
… 動作コスト的にあまり行わないかもしれないが (本当に意図した物なら戻り値で判断してもらう方が低コスト)、
それでもロジックによっては何かの処理分岐で、「この場合には例外を発行する」 と設計する事がある。 それがわかっている時。
そして >>100 を例とするような実装に不備があって起こる例外は、安直に try〜catchで逃げる=不具合を隠蔽している という事になるので
マズい。 そしてそれが起こる原因を追求して潰していない場合、知らない所で 二次災害、三次災害なんて普通に起こる。
(全体的に Nullでない前提で動く物が、どこかでNullになってしまっていたら、どこまでぶっ壊れるかって事)
こんな感じ
1.この処理ははっきりと何か理由により、例外が発生する事がわかっている。その可能性がある事がわかっている時
… ASでは無いけど、例えばファイル入出力の処理とかで、『自分(アプリケーション)の関知しない所で』、
=例えば他のアプリケーションやOSの都合で、ファイルにアクセス出来ないような場合がある。
そんな時、「あらかじめわかっていて、かつ自分の範疇/都合で回避は出来ないから」 しかけたりする
2.そもそも意図して例外を発行するオブジェクトがあったとして、それを意図的にキャッチするような時
… 動作コスト的にあまり行わないかもしれないが (本当に意図した物なら戻り値で判断してもらう方が低コスト)、
それでもロジックによっては何かの処理分岐で、「この場合には例外を発行する」 と設計する事がある。 それがわかっている時。
そして >>100 を例とするような実装に不備があって起こる例外は、安直に try〜catchで逃げる=不具合を隠蔽している という事になるので
マズい。 そしてそれが起こる原因を追求して潰していない場合、知らない所で 二次災害、三次災害なんて普通に起こる。
(全体的に Nullでない前提で動く物が、どこかでNullになってしまっていたら、どこまでぶっ壊れるかって事)
こんな感じ
106Now_loading...774KB
2010/04/09(金) 12:38:33ID:ZbEkwPYF >>104
いやActionScriptは知ってるし書けるけど例外についてActionScript
の世界でどういう議論がなされてきたかに関しては詳しく知らない
って事で。どこかに良いポインタあるかな?
いやActionScriptは知ってるし書けるけど例外についてActionScript
の世界でどういう議論がなされてきたかに関しては詳しく知らない
って事で。どこかに良いポインタあるかな?
107100
2010/04/09(金) 13:38:33ID:0pZkcie5 どうもみなさん たくさんのアドバイスありがとうございました
null検出の不具合はインスタンスが読み込まれるまで回す事で解決しました
Flashにおけるtry catchの使いどころはアバターチャットやカメラ使用のテレビ電話的なチャット、
ネットゲーム等のサーバ経由でデータをやり取りする時なんでしょうかね?
他にはシミュレーションゲームで複雑なforループに関係したとことか…
外部からデータを読み込まない簡単なゲームには必要無いって事は理解したっす
null検出の不具合はインスタンスが読み込まれるまで回す事で解決しました
Flashにおけるtry catchの使いどころはアバターチャットやカメラ使用のテレビ電話的なチャット、
ネットゲーム等のサーバ経由でデータをやり取りする時なんでしょうかね?
他にはシミュレーションゲームで複雑なforループに関係したとことか…
外部からデータを読み込まない簡単なゲームには必要無いって事は理解したっす
2010/04/09(金) 20:42:19ID:s6a1IM58
一ついえるのは、ある処理において例外が発生するか否かを
実行前に簡単にチェック出来る場合は、制御構造としてtry-
catchは使うべきではないということ。
例えば>>100の例であればtry-catchで囲む代わりにアクセス
したいインスタンスとやらにアクセスする前にそれがnullでは
ないか事前条件としてチェックするのが適切。
仮にnullだった場合にcatch節に書いていた処理を実行すれば
try-catchを使わずとも基本的に等価な制御を実現できる。
例外処理は毎度例外オブジェクト生成してスタックトレースを
積み上げる必要があるので、意外と重い処理。
なので「複雑なforループ」とやらの中で便利な大域ジャンプ
的に使うのもあまりお薦めしない。
例外という名前の通り、例外的なケースに限って使うべきでは。
実行前に簡単にチェック出来る場合は、制御構造としてtry-
catchは使うべきではないということ。
例えば>>100の例であればtry-catchで囲む代わりにアクセス
したいインスタンスとやらにアクセスする前にそれがnullでは
ないか事前条件としてチェックするのが適切。
仮にnullだった場合にcatch節に書いていた処理を実行すれば
try-catchを使わずとも基本的に等価な制御を実現できる。
例外処理は毎度例外オブジェクト生成してスタックトレースを
積み上げる必要があるので、意外と重い処理。
なので「複雑なforループ」とやらの中で便利な大域ジャンプ
的に使うのもあまりお薦めしない。
例外という名前の通り、例外的なケースに限って使うべきでは。
2010/04/17(土) 01:07:26ID:7ysH8U9N
cashAsBitmapってどこにどう書くの?
MovieClipのコンストラクタに
cashAsBitmap = true;
って書いても未定義とか言われるんだけど
MovieClipのコンストラクタに
cashAsBitmap = true;
って書いても未定義とか言われるんだけど
2010/04/17(土) 01:15:50ID:7ysH8U9N
ごめん、変なサイトからコピペしたからスペル違うじゃん…
2010/04/17(土) 19:48:47ID:pS1T+xD5
どういう事だお ヘルプ見れ
2010/04/18(日) 12:21:21ID:ha422Phb
2010/05/19(水) 13:25:12ID:vRTmjzhI
nextFrameと prevFrameについて教えて下さい(CS3、AS3)
nextFrameとprevFrameを使い トゥイーンで動かしている ”頭MC” があり
頭MCの中は目、口等があり フレームで回している(目パチ等)
頭MC内のフレームには this.stop();等の再生ヘッドを止めるスクリプトは使われていない
頭MCを毎フレーム nextFrame();してもMC内部には影響無し 表情が動いている
しかし毎フレーム prevFrame();するとMC内部のフレームが止まってしまう
(prevFrame();を中止すると MC内部の止まっていたフレームから再生ヘッドが動き出す)
(フレーム上に複数ある頭MCは同じインスタンスを使用 インスタンス名もすべて同じ)
このprevFrame時の不具合を回避する手段があったら教えて下さい
nextFrameとprevFrameを使い トゥイーンで動かしている ”頭MC” があり
頭MCの中は目、口等があり フレームで回している(目パチ等)
頭MC内のフレームには this.stop();等の再生ヘッドを止めるスクリプトは使われていない
頭MCを毎フレーム nextFrame();してもMC内部には影響無し 表情が動いている
しかし毎フレーム prevFrame();するとMC内部のフレームが止まってしまう
(prevFrame();を中止すると MC内部の止まっていたフレームから再生ヘッドが動き出す)
(フレーム上に複数ある頭MCは同じインスタンスを使用 インスタンス名もすべて同じ)
このprevFrame時の不具合を回避する手段があったら教えて下さい
2010/05/23(日) 15:34:22ID:ET963wlW
謎の現象について少し判明したので報告
どうやら親MCがモーショントゥイーンでフレーム移動すると
子MC内部のフレームが遅延するようなのです
親MCがplay()で通常移動の場合
親 5f 子 5f
親 6f 子 6f
親 7f 子 7f
親 8f 子 8f
親 9f 子 9f
つづく
どうやら親MCがモーショントゥイーンでフレーム移動すると
子MC内部のフレームが遅延するようなのです
親MCがplay()で通常移動の場合
親 5f 子 5f
親 6f 子 6f
親 7f 子 7f
親 8f 子 8f
親 9f 子 9f
つづく
2010/05/23(日) 15:35:13ID:ET963wlW
親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
親 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
2010/05/23(日) 15:36:18ID:ET963wlW
ボタン押しての再生、逆再生したい場合などprevFrameが欠かせません
親MC移動時に子MCが動かなかったら使い物にならないじゃないかw
(ただのアニメの逆再生ならグラフィックインスタンスのループで済むが
子MCは独立で制御させたい ゲーム等では必要不可欠)
これはCS3だからなのか CS4以降では改善されてるんでしょうか?
親MC移動時に子MCが動かなかったら使い物にならないじゃないかw
(ただのアニメの逆再生ならグラフィックインスタンスのループで済むが
子MCは独立で制御させたい ゲーム等では必要不可欠)
これはCS3だからなのか CS4以降では改善されてるんでしょうか?
2010/05/23(日) 18:35:13ID:DyKStVW9
>>116
いっそのこと、子をたどって そいつが MovieClip だったら currentFrame を見て
2以上なら prevFrame(), 1 なら最後のフレームに再生ヘッド移してあげればいいんじゃないかな。
いっそのこと、子をたどって そいつが MovieClip だったら currentFrame を見て
2以上なら prevFrame(), 1 なら最後のフレームに再生ヘッド移してあげればいいんじゃないかな。
2010/06/28(月) 15:47:18ID:YW2VUKmO
俺も最初AS3とか無理wwwって思ってたけど、やってくうちに慣れるもんだな
むしろ今じゃAS3のが書きやすいし、AS2の処理速度はつらいなーと感じることもしばしば
wonderflとか眺めてるだけで楽しいしAS3頑張ってよかったよ
むしろ今じゃAS3のが書きやすいし、AS2の処理速度はつらいなーと感じることもしばしば
wonderflとか眺めてるだけで楽しいしAS3頑張ってよかったよ
119Now_loading...774KB
2010/07/22(木) 07:54:08ID:/cA812PA マジで?このスレの人って天才?
俺、プログラムするのコレが初めてでFLASHは昔から使ってるからAS3を選んだんだけど、正直さっぱりわからん。
本を買ってきて、ボタンを押したら動くという基礎的なのを作ったんだけど、
その言語でさえ、本を見なければわからない(本を見ながらなら作れる)。
言語とか全部把握してるの?
gotoAndPlayとかも頭で考えると同時に指が反応するのかな?
ふ〜…WordとかExcelが子供だましに思えるぐらいの難易度だ…。
真面目にどうやってこんなの覚えた?
本のまま、同じ方法で作るのなら出来るけど、直ぐに作り方を忘れてしまう。
イラレ、フォトショ、クォーク、FLASH、DW、Word、Excel、他色々使えるけど、
これらとは違う次元の感じがする。
このスレでAS3の言語書いてる人いるけど、暗号にしか見えない。
どうやって覚えた?本気で知りたい。
俺、プログラムするのコレが初めてでFLASHは昔から使ってるからAS3を選んだんだけど、正直さっぱりわからん。
本を買ってきて、ボタンを押したら動くという基礎的なのを作ったんだけど、
その言語でさえ、本を見なければわからない(本を見ながらなら作れる)。
言語とか全部把握してるの?
gotoAndPlayとかも頭で考えると同時に指が反応するのかな?
ふ〜…WordとかExcelが子供だましに思えるぐらいの難易度だ…。
真面目にどうやってこんなの覚えた?
本のまま、同じ方法で作るのなら出来るけど、直ぐに作り方を忘れてしまう。
イラレ、フォトショ、クォーク、FLASH、DW、Word、Excel、他色々使えるけど、
これらとは違う次元の感じがする。
このスレでAS3の言語書いてる人いるけど、暗号にしか見えない。
どうやって覚えた?本気で知りたい。
2010/07/22(木) 13:00:39ID:JwqbKq8a
いきなりAS3はキツイだろな
AS1はそのまんまスクリプトって感覚なんだろうけど AS3は完全なプログラミング言語なんだお
バリバリ使いこなせている人はJavaやC++の経験者
もしくはAS1からAS2にステップアップしてOOPを理解、習得した人が大半だと思う
>言語とか全部把握してるの?
プロ以外はそんな事ないんじゃないか? 言語全体の骨格を把握しているんだと思う
「こんな処理をしたい」と思ったらだいたいのクラスは思いついて あとはヘルプで詳細を調べる
ヘルプ無しじゃどうしようもないな ヘルプに親しめば上達は早いお
ちなみにヘルプを全部紙媒体にしたら本棚が埋まるかもw
AS1はそのまんまスクリプトって感覚なんだろうけど AS3は完全なプログラミング言語なんだお
バリバリ使いこなせている人はJavaやC++の経験者
もしくはAS1からAS2にステップアップしてOOPを理解、習得した人が大半だと思う
>言語とか全部把握してるの?
プロ以外はそんな事ないんじゃないか? 言語全体の骨格を把握しているんだと思う
「こんな処理をしたい」と思ったらだいたいのクラスは思いついて あとはヘルプで詳細を調べる
ヘルプ無しじゃどうしようもないな ヘルプに親しめば上達は早いお
ちなみにヘルプを全部紙媒体にしたら本棚が埋まるかもw
2010/07/22(木) 13:49:44ID:eFk7pOBt
>>119
いきなり全体を理解しようとしないで、とりあえず必要な部分から覚えて行けばいいと思うよ。
自分の場合、はじめに「標準 ActionScript3.0入門」を読んで何となく概念を把握したのち、
作りたいものを具体的に決めて「逆引きクイックリファレンス」なんかを引きながら実制作、
不具合が出る度に原因を考えて…を繰り返している内に基本文法が身に付いた。
個人的には、リファレンス本に書いてあるサンプルをなぞるんじゃなくて
自分で作りたいものを決めて、どうすれば実現できるのかを考えていくようにすると
理解が早いような希ガス(スクリプトが自己流になる危険性はあるけど)
いきなり全体を理解しようとしないで、とりあえず必要な部分から覚えて行けばいいと思うよ。
自分の場合、はじめに「標準 ActionScript3.0入門」を読んで何となく概念を把握したのち、
作りたいものを具体的に決めて「逆引きクイックリファレンス」なんかを引きながら実制作、
不具合が出る度に原因を考えて…を繰り返している内に基本文法が身に付いた。
個人的には、リファレンス本に書いてあるサンプルをなぞるんじゃなくて
自分で作りたいものを決めて、どうすれば実現できるのかを考えていくようにすると
理解が早いような希ガス(スクリプトが自己流になる危険性はあるけど)
122119
2010/07/23(金) 00:17:13ID:PU7hwnze >>120
>>121
ありがとうございます。
なるほど、つまりAS1やAS2とは作りそのものが違うということですか…
こんなの出来るのかな…一週間ぐらい触ってるけど上達してる気が全くしない。
本はアマゾンで評判が良かった 速習webデザイン ActionScript3.0 を買いました。
学習というよりも本を見ながらの作業的なんですよね。
やはり121氏のとおり、自分で作りたいものを決めて、探しながら作る方が上達するのかな…
まあ、俺自身がアクションスクリプトを覚えたいというよりも、
アクションスクリプトで作りたいものがあるから始めたのでその方が都合が良いんですよね。
日記みたいなこと書きましたが、物凄いヒントになりました。
感謝します。
>>121
ありがとうございます。
なるほど、つまりAS1やAS2とは作りそのものが違うということですか…
こんなの出来るのかな…一週間ぐらい触ってるけど上達してる気が全くしない。
本はアマゾンで評判が良かった 速習webデザイン ActionScript3.0 を買いました。
学習というよりも本を見ながらの作業的なんですよね。
やはり121氏のとおり、自分で作りたいものを決めて、探しながら作る方が上達するのかな…
まあ、俺自身がアクションスクリプトを覚えたいというよりも、
アクションスクリプトで作りたいものがあるから始めたのでその方が都合が良いんですよね。
日記みたいなこと書きましたが、物凄いヒントになりました。
感謝します。
123Now_loading...774KB
2010/08/14(土) 16:25:29ID:iuqEyi85 定期あげ
このスレ専ブラだと灰色になってる どうしたんだ壊れたのか?
このスレ専ブラだと灰色になってる どうしたんだ壊れたのか?
124Now_loading...774KB
2010/10/05(火) 02:05:31ID:RSV3BhvH デザインパターンの本買ってきた、むずすぎだけど、
flasherにはためになる本だ
flasherにはためになる本だ
レスを投稿する
ニュース
- 【令和の高校生】ハタチ過ぎても「タバコ吸わない」9割超! 圧倒的多数を占めた “5つの理由” とは [七波羅探題★]
- 【日産】九州転籍で給与5年分支給 補償金、追浜工場の生産終了で [蚤の市★]
- 【大学】全国の女子大7校がトランスジェンダー女性の入学認める 16校が検討 [七波羅探題★]
- 【フジテレビ】『サン!シャイン』3月で終了 放送わずか1年… 谷原章介MC起用も 視聴率低迷、3%台の壁を越えれず 後継番組はなし [冬月記者★]
- 令和ロマン・高比良くるま 不倫訴訟起こされていた 「不倫関係ない」と否定も元夫から「婚姻期間中に…」 [征夷大将軍★]
- カルボナーラ論争勃発…イタリアの農相がイタリア風の商品に“怒りの投稿” [夜のけいちゃん★]
- 米メディア「早苗は中国との対立をむしろ楽しんでいるのかもしれない」「日中対立が高市の政治的利益」に [399259198]
- 【悲報】山上徹也(おてつ)、借金300万を踏み倒していたことが発覚wwwwwwwwwwwwwww [455031798]
- 女にパーティー組ませるとろくな事にならないな
- 「あっこいつ確実に浮気しないな」って女の特徴wwwwwwwwwwwwwwwwwwwwwwwwwwww
- 【悲報】片山さつき、怒涛の文春砲WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- ていうか日本人てふつーに中国のこと嫌いなんやな [455031798]
