Как нацелить ролик на сцену из док-класса AS3?

Я делаю динамическую игру перетаскивания. У меня есть класс для перетаскиваемых элементов, содержащих код перетаскивания.

Моя проблема в том, что я не могу позвонить / получить доступ к видеоклипам, которые я уже выложил на сцену в своем заявлении о тестировании хита.

Вот мой код, а 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;
   }

  }
 }
}

1 ответ

Вам нужно перейти, чтобы опубликовать настройки->flash->settings(кнопка) и выбрать "Автоматически объявлять экземпляры сцены". Это должно делать свое дело.

РЕДАКТИРОВАТЬ

Попробуйте это внутри вашего класса recieptMovieClip:

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

Поскольку это раздражает, вы можете хранить MovieClip(root) в переменной. Важно отметить, что корневое свойство не существует, если ваш мувиклип не находится в списке отображения. Поэтому, пока ваш класс не будет добавлен с помощью addChild(), это не будет работать.

Альтернативный метод заключается в использовании класса документа и сохранении ссылки на основную временную шкалу в статической переменной. Я написал пост в блоге об этом однажды. Посмотри

Если вы используете технику в этом посте, вы можете получить доступ к основной временной шкале из любого места, например:

Main.display.target1_mc

Надеюсь, это поможет. Я могу загрузить пример или два, если они вам нужны.

Другие вопросы по тегам