• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Actionscript3.0のクラス定義の仕方)

Actionscript3.0のクラス定義の仕方

このQ&Aのポイント
  • ActionScript3.0のクラス定義について説明します。
  • クラス定義を使うと、回転が速くなるインスタンスを作成できます。
  • しかし、クラス定義を使用してもうまく動かない場合があります。

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

  • ベストアンサー
回答No.2

>>1さん来ないみたいなので代わりに補足レス >未定義stage Haneクラスのインスタンスが stageにaddChildされてないと Haneインスタンスのstageはnullです もう少しいうとこのHaneクラス自体は MovieClipの拡張クラスである必要性が あんまりないように思います hane_mcにリスニングさせればいいかと思います public function moveHane(mou:Point):void{ distance = Point.distance(ballPt,mou); addEventListener(Event.ENTER_FRAME, kaitenHandler); } public function kaitenHandler(ev:Event):void{ if(distance<200){ hane_mc.rotation+=2000/Math.max(50,distance); } ↓ public function moveHane():void{ hane_mc.addEventListener(Event.ENTER_FRAME, kaitenHandler); } public function stopHane():void{ hane_mc.removeEventListener(Event.ENTER_FRAME, kaitenHandler); } private function get dst():Number{ return new Point(hane_mc.mouseX,hane_mc.mouseY).length } public function kaitenHandler(ev:Event):void{ if(dst<200){ hane_mc.rotation+=2000/Math.max(50,dst); } 片づけ用にstopHane()を用意 distanceをdstとしてgetter実装 これでdistanceとballPtプロパティは不要になってます

nekoze-man
質問者

お礼

とても分かりやすい説明有り難うございました!! おかげでスッキリしました! getterの使い方も分かったので大変勉強になりました。 ありがとうございます!!

その他の回答 (1)

  • 76masa
  • ベストアンサー率50% (8/16)
回答No.1

1) var mousePt:Point=new Point(stage.mouseX,stage.mouseY); 2) var haneobj1:Hane = new Hane(hane_mc); 3) haneobj1.moveHane(mousePt); 1) でマウスの座標を取得した後に、、 3) でマウスの座標を引数で渡していますね。 マウスの座標は 1) で1回しか取得していないので、常に同じ数値で計算しています なので、一定の動きをしています。 マウスの座標を常に取得してあげましょう。

nekoze-man
質問者

お礼

ありがとうございます!! はい、一応そこまではそうだろうなと思ってはいたのですが、そこからどうすればいいのか色々試したのですがなかなかうまくいかず。。。 もう少し助言を頂けると嬉しいです!

nekoze-man
質問者

補足

すみません追記です。 できれば var mousePt:Point=new Point(stage.mouseX,stage.mouseY); を外部のファイルに記述したいのですが、記述すると「未定義stage...」とエラーが出てしまいます。 これは何かインポートしなくてはならないのでしょうか? もしよろしければ助言頂けると嬉しいです!

関連するQ&A