メイン 迷える子羊の部屋【初心者専用】
return function の 消し方 が わかりません | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| レイ | Åê¹ÆNo.43966 投稿日時: 2009-11-18 11:13 |
新米 ![]() ![]() 居住地: 大阪 投稿: 11
使用環境:
winVista,FlashCS4,AS3, IE8,FlashPlayer10, Red5v8rec2ストリーミング配信 |
return function の 消し方 が わかりません ステージに ボタンを2つ おいて、 btn1 と btn2
という名前をつけました。 そして、各ボタンに引数を持たせて addEventListener したり、 removeEventListener させたりしたいのですが、 引数を持たせてaddEventListenerさせると removeしてくれません。 リスナーの消し方をご存知の方、教えてください。 ------------------------------------------------- btn1.addEventListener( MouseEvent.CLICK, onFunc("テスト")); btn2.addEventListener( MouseEvent.CLICK, removeFunc); function onFunc( tar:String):Function{ return function(event:MouseEvent):void{ trace(tar); btn1.buttonMode = true; } } function removeFunc(event:MouseEvent):void{ trace("onFuncを消す"); btn1.buttonMode = false; //消えなかった命令文 //btn1.removeEventListener(MouseEvent.CLICK,onFunc); //btn1.removeEventListener(MouseEvent.CLICK,onFunc("テスト")); //btn1.removeEventListener(MouseEvent.CLICK,arguments.callee); } |
| 野中文雄 | Åê¹ÆNo.43967 投稿日時: 2009-11-18 16:20 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: return function の 消し方 が わかりません 削除できないのではなく、削除する関数を指定すべき参照がないということでしょう。ついでにいえば、厳密な意味で引数が渡せている訳でもありません。したがって、名前のない関数をイベントリスナーに指定すること自体止めた方がよいと思われます。
![]() 引用: myantaさんは書きました: |
| レイ | Åê¹ÆNo.43972 投稿日時: 2009-11-19 10:19 |
新米 ![]() ![]() 居住地: 大阪 投稿: 11
使用環境:
winVista,FlashCS4,AS3, IE8,FlashPlayer10, Red5v8rec2ストリーミング配信 |
ありがとうございます! 野中様、お返事ありがとうございました。
なるほど、参照もなく、引数も渡せていなかったのですね…。 引数渡しする際は代わりにグローバル変数などに値を格納して 呼び出せるように回避してみようと思います…! (もっといい手があるかもしれませんが^^;) これからは使用しないように気をつけます。 ありがとうございました! |
| 野中文雄 | Åê¹ÆNo.43974 投稿日時: 2009-11-19 18:59 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: ありがとうございます! おやりになりたいことにより対処法は異なるため、先の回答ではあえてスクリプトは掲げませんでした。つぎのような処理で対応できそうでしたら、その方が確実だと思います。
参照さえ取っておけば、名前のない関数でもイベントリスナーから削除することはできます。けれども、名前のない関数特有のクセがあります。とくに関数内におけるthisが問題となります。ですから結論として、やはりお勧めはしません。 ![]() 引用: myantaさんは書きました: |
| レイ | Åê¹ÆNo.43986 投稿日時: 2009-11-20 16:53 |
新米 ![]() ![]() 居住地: 大阪 投稿: 11
使用環境:
winVista,FlashCS4,AS3, IE8,FlashPlayer10, Red5v8rec2ストリーミング配信 |
理解度がさらにUPしました、ありがとうございます! 野中様、詳細なご説明ありがとうございます!
以前に作成したもので、動作が?なものがあった気がします。 気づけてよかったです! 私がやろうとしていたことは、 ボタンをクリックしてurlへ飛ばすような 関数を作ったときに、引数でurlを渡してしまえば、 作成する関数もスッキリすると思っていました。 MovieClipのボタンを3つ置いて、 ↓↓このような感じです。 あたりまえなのですが、リスナーを消せませんでした; 野中様のご提示いただいたものを参考に、 新しく作り直そうと思います。 ありがとうございました! |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS4
.4.11
Vista Home Premium (SP1)


