В настоящее время у меня есть два мувиклипа, один из которых называется mcInvFrame, и один из них называется btnCloseInv (это мувиклип, и я знаю, что соглашение об именах неверно). btnCloseInv находится внутри mcInvFrame. У меня есть два файла Inventory.as и мой основной класс документа. Я могу загрузить mcInvFrame просто отлично на сцену, и все работает так, как ожидалось. Однако, когда я пытаюсь получить доступ к мувиклипу btnCloseInv, я получаю ошибки. Вот код для Inventory.as я прокомментировал мою последнюю неудачную попыткуAS3 Добавить прослушиватель событий в movieclip в movieclip
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Inventory extends MovieClip
{
public var inv:MovieClip = new mcInvFrame;
public function Inventory()
{
addChild(inv);
/*var invClose:MovieClip = inv.btnCloseInv;
invClose.addEventListener(MouseEvent.CLICK, CloseInventory);
function CloseInventory($e:MouseEvent):void
{
this.parent.removeChild(inv);
}*/
}
}
}
Что мне нужно знать, может/должен я создать переменную в inventory.as для кнопки Я могу получить доступ к основному документу? Если да, то как?
P.S. Я искал форумы и пробовал различные решения, но я либо не понимал реализации, либо они не были подходящими для этой ситуации. Наиболее распространенной ошибкой, которую я получаю, является «Ошибка № 1009: невозможно получить доступ к свойству или методу ссылки на нулевой объект». Иногда я получаю сообщение об ошибке, указывающее, что объект не имеет свойств.
вы определенно поставить имя экземпляра на btnCloseInv? Если у вас есть, я думаю, ваш код должен работать. –
Ну, у меня есть подходящая работа, но это не то, на что я надеялся. В Inventory.as я добавил экземпляр кнопки закрытия и позиционировал его там, где хотел, я смог заставить кнопку работать. Я хотел бы получить доступ к кнопке в mcInvFrame movieclip для работы, но я не могу понять, как создать экземпляр мувиклипа внутри другого мувиклипа. – user2540655