Как нацелить ролик на сцену из док-класса 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
Надеюсь, это поможет. Я могу загрузить пример или два, если они вам нужны.