• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActionScript 3.0 D&Dの実装)

ActionScript 3.0のD&D実装エラー解決方法は?

このQ&Aのポイント
  • ActionScript 3.0を使用して、ステージ上に配置された20個のインスタンスをドラッグアンドドロップで動かしたいが、エラーが出ている。
  • エラーメッセージ「TypeError: Error #1006: value は関数ではありません at MethodInfo-1()」が表示される。
  • エラーの原因と解決方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

マウスオーバー時に trace(str); で出る str は 文字列 ですよ。 そういう意味があるからこそ 変数名に str(String の略) という名前を命名されているのではないのでしょうか? とにかく マウスオーバー時に出力される 変数 str に代入されるところの e.target.name; とは イベント「e」が発動されたターゲット「target」の名前「name」の文字列です。 「文字列に命令する」という事自体が変でしょう? どうしたいのか(何を意図しているのか)さっぱりわかりませんが とりあえず1つの修正案のいくつかを書きます。 ◎修正案1 //-------------------------------------------------- addEventListener (MouseEvent.MOUSE_OVER,getname); function getname (e:MouseEvent) { var str = e.target.name;//マウスカーソルを乗せたムービークリップのインスタンス名が出ます。 } addEventListener (MouseEvent.MOUSE_DOWN, onMouseDown); function onMouseDown (e:MouseEvent) { e.target.startDrag (); } addEventListener (MouseEvent.MOUSE_UP, onMouseUp); function onMouseUp (e:MouseEvent) { e.target.stopDrag (); } //-------------------------------------------------- ◎修正案2 //-------------------------------------------------- addEventListener (MouseEvent.MOUSE_OVER,getname); function getname (e:MouseEvent) { var str = e.target.name;//マウスカーソルを乗せたムービークリップのインスタンス名が出ます。 addEventListener (MouseEvent.MOUSE_DOWN, onMouseDown); function onMouseDown (e:MouseEvent) { e.target.startDrag (); } addEventListener (MouseEvent.MOUSE_UP, onMouseUp); function onMouseUp (e:MouseEvent) { e.target.stopDrag (); } } //-------------------------------------------------- ◎修正案3 //-------------------------------------------------- addEventListener (MouseEvent.MOUSE_OVER,getname); function getname (e:MouseEvent) { var str:String = e.target.name;//マウスカーソルを乗せたムービークリップのインスタンス名が出ます。 addEventListener (MouseEvent.MOUSE_DOWN, onMouseDown); function onMouseDown (e:MouseEvent) { MovieClip(getChildByName(str)).startDrag (); } addEventListener (MouseEvent.MOUSE_UP, onMouseUp); function onMouseUp (e:MouseEvent) { MovieClip(getChildByName(str)).stopDrag (); } } //-------------------------------------------------- ◎修正案4 //-------------------------------------------------- var str:String; addEventListener (MouseEvent.MOUSE_OVER,getname); function getname (e:MouseEvent) { str = e.target.name;//マウスカーソルを乗せたムービークリップのインスタンス名が出ます。 addEventListener (MouseEvent.MOUSE_DOWN, onMouseDown); function onMouseDown (e:MouseEvent) { MovieClip(getChildByName(str)).startDrag (); } addEventListener (MouseEvent.MOUSE_UP, onMouseUp); function onMouseUp (e:MouseEvent) { MovieClip(getChildByName(str)).stopDrag (); } } //-------------------------------------------------- ◎参考URL「F-site [AS3] MovieClipインスタンスとインスタンス名」 http://f-site.org/articles/2008/04/19014939.html

unit012
質問者

お礼

実装できましたありがとうございます。 変数名の所は、実はD&Dを実装するにあたって、参考にしたサイトをそのままコピペして、書き換えて作ろうとしたんです。 その際変数をそのまま使い回していました。  混乱させてしまい申し訳ございません。

すると、全ての回答が全文表示されます。

専門家に質問してみよう