Я пытаюсь создать небольшую игру (это больше о том, как научиться, чем делать неотразимую игру). Его можно возобновить следующим образом: Пользователь выбирает здание в меню и размещает его на сцене. При нажатии на вновь созданное здание он/она может выбрать его обновление. (Для тех, кто играет в такие игры, как Clash of Clans, это то, что я пытаюсь сделать). У меня есть мое меню, и я могу разместить здания без проблем, но я не могу на них нажимать. Вот начало моего кода:EventListener и динамически добавленные MovieClips. (AS3)
var build:int=0; //variable that defines which building to place on stage
menuBuilding.house.addEventListener(MouseEvent.CLICK, fnChooseHouse); //when click on House in Building Menu
function fnChooseHouse (e:Event):void{
build = 1; //building to place is a House.
}
city.addEventListener(MouseEvent.CLICK, mouseClickEvent);
function mouseClickEvent(e: MouseEvent): void {
if (build == 0) { //if building not chosen, do nothing
return
} else if (build == 1) { // if building is a house
var house1: house = new house();
addChild(house1); //add instance of the house
house1.x = stage.mouseX;
house1.y = stage.mouseY; // place the house where I clicked
build = 0; //reset the variable.
house1.mouseChildren=true; //allow instance of house to be clicked.
}
};
Моя проблема заключается в том, что собирается быть много домов (и других зданий). Я попытался назвать их и направить их в массив (поэтому я могу получить к ним доступ по одному для каждого ... в цикле), но он не работает.
У кого-то есть идея? (Кстати, я все еще изучаю AS3, когда я ухожу, поэтому я не использую внешний файл .as еще, все еще на временной шкале). Заранее спасибо :)
У меня был прослушиватель кликов для каждого из ... в цикле (экземпляры были помещены в массив), но он все еще не работал. Я знаю, что это может быть не самый эффективный способ, но это единственный способ, которым я мог бы думать с моими ограниченными знаниями. Если вы можете думать по-другому, я бы очень признателен. Просто укажите мне путь, и я посмотрю. Спасибо. – Jeryl
, если вы добавите прослушиватель событий в экземпляр house1 сразу после его создания, что-нибудь делает? – mitim
это сделал. Мне пришлось добавить часть кода, приведенную ниже, чтобы заставить ее работать. Но, наконец, это работает. Только нужно выяснить, как проверить, можно ли добавить новое здание или если пространство уже занято. Большое спасибо. – Jeryl