Как нацелить ролик на сцену из док-класса AS3? - PullRequest
0 голосов
/ 18 декабря 2010

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

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

Вот мой код, а 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 Ответ

1 голос
/ 18 декабря 2010

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

EDIT

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

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

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

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

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

Main.display.target1_mc

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

...