0

我正在制作动态拖放游戏。我有一个包含拖放代码的拖动项目的类。

我的问题是我无法调用/访问我已经在我的命中测试语句中放到舞台上的电影剪辑。

这是我的代码,target1_mc 和 target2_mc 是舞台上现有的影片剪辑:

package {
 import flash.display.MovieClip;
 import flash.events.MouseEvent;
 import flash.text.TextField;




 public class recipeMC extends MovieClip {



  private var startX:Number;
  private var startY:Number;
  private var counter:Number=0;




  public function recipeMC() {
   this.mouseChildren = false;
   this.buttonMode = true;
   this.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
   this.addEventListener(MouseEvent.MOUSE_UP, dropIt);
  }
  private function pickUp(event:MouseEvent):void {
   this.startDrag(true);
   this.parent.addChild(this);
   startX = this.x;
   startY = this.y;

  }
  private function dropIt(event:MouseEvent):void {
   this.stopDrag();



   *****if (this.hitTestObject(target1_mc)
   ||this.hitTestObject(target2_mc) )***** {
    this.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    this.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
    this.buttonMode = false;
    this.x = myTarget.x;
    this.y = myTarget.y;
    counter++;
   } else {
    //reply_txt.text = "Try Again!";
    this.x = startX;
    this.y = startY;
   }

  }
 }
}
4

1 回答 1

1

You need to go to publish settings->flash->settings(button) and select "Automatically declare stage instances." That should do the trick.

EDIT

Try this inside your recieptMovieClip class:

MovieClip(root).target1_mc
MovieClip(root).target2_mc

Because this is annoying to type you can store MovieClip(root) in a variable. It's important to note that the root property doesn't exist unless your movieClip is on the display list. So until your class has been added wth addChild() this will not work.

An alternative method is to use a document class and store a reference to the main timeline in a static variable. I wrote a blog post about that once. Have a look

If you use the technique in that blogpost you could access the main timeline from anywhere like this:

Main.display.target1_mc

Hope that helps. I can upload an example or two if you need them.

于 2010-12-17T23:51:41.000 回答