|
|
|||||
Banned
[+1 13.12.12]
[+6 15.11.12] [+5 14.12.12] Регистрация: Sep 2012
Сообщений: 91
|
Сапер, проблемы с циклом, мышью.
Здравствуйте.
Пишу игру сапер Пока на стадии 1-ой -создаю 1 кнопочку графически(само собой указываю имя объекта) -создаю поле 10х10 вложенным циклом for(тут первая проблема:внутренний цикл рисует мои 10 кнопочек по оси х,НО внешний цикл,созданный для перехода на следующую строку не срабатывает) -далее я подумал,надо что бы мои кнопочки работали,я добавляю btn'у слушатель событий addEventListener(проблема номер 2 тут). func_click вместе с слушателем событий я заккоментил,с ним программа вообще не работает. код. package { import flash.events.MouseEvent;//события мыши import flash.display.MovieClip;//для работы с кадрами import flash.display.Sprite; //для работы с основной функцией. //import flash.display.*; import flash.text.TextField;//для работы с надписями import flash.utils.getTimer;//время public class Saper extends Sprite { private var n:int= 0;//элементы в строке private var m:int= 0;//номер строки public function Saper(){ for (var i:int = 0 ; i<10;i++){ for(var j:int ; j<10;j++){ var btn:Btn = new Btn();//присвоили переменной экземпляр addChild(btn);//добавили на сцену кнопочку n+=30;//увеличили btn.x = n;//отправляем кнопочку в координаты 30 по х в первый раз btn.y= m;//отправляем кнопочку в координаты 0 по у в первый раз //btn.addEventListener(MouseEvent.CLICK,func_click); } m+=30; } } /*function func_click (e:MouseEvent){ var btn:Btn = new Btn(); removeChild(btn); }*/ } } |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
нужно присваивать переменной значение по умолчанию, чтобы повторно для нужных целей её использовать в следующей итерации
|
|
|||||
Цитата:
__________________
http://www.chessmax.ru |
|
|||||
Banned
[+1 13.12.12]
[+6 15.11.12] [+5 14.12.12] Регистрация: Sep 2012
Сообщений: 91
|
Cпасибо,но вы не могли бы подробнее описать,мне бы понимание этой функции...
Цитата:
|
|
|||||
Banned
[+1 13.12.12]
[+6 15.11.12] [+5 14.12.12] Регистрация: Sep 2012
Сообщений: 91
|
На данный момент код выглядит так:
package { import flash.events.MouseEvent;//события мыши import flash.display.MovieClip;//для работы с кадрами import flash.display.Sprite; //для работы с основной функцией. //import flash.display.*; import flash.text.TextField;//для работы с надписями import flash.utils.getTimer;//время public class Saper extends Sprite { private var n:int= 0;//элементы в строке private var m:int= 0;//номер строки public function Saper(){ for (var i:int = 0 ; i<10;i++){ n=0; for(var j:int ; j<10;j++){ var btn:Btn = new Btn();//присвоили переменной экземпляр addChild(btn);//добавили на сцену кнопочку n+=30;//увеличили btn.x = n;//отправляем кнопочку в координаты 30 по х в первый раз btn.y= m;//отправляем кнопочку в координаты 0 по у в первый раз //btn.addEventListener(MouseEvent.CLICK,func_click); } m+=30; } } private function func_click (e:MouseEvent):void{ //Нажатие по кнопочке var btn:Btn = e.currentTarget as Btn; if (btn) //цикл,если бтн = тру то удаляем чайлд { removeChild(btn); //удаление кнопочки } } } } http://www.flasher.ru/forum/newattac...anageattach&p= |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Сравните:
|
|
|||||
Banned
[+1 13.12.12]
[+6 15.11.12] [+5 14.12.12] Регистрация: Sep 2012
Сообщений: 91
|
Ой,дурья моя голова))) спасибо,не заметил очевидного))) а вот по поводу этой функции кто нить максимально подробные пояснения может дать?
|
|
|||||
Вы подписываетесь на событие MouseEvent.CLICK у баттона, обработчик этого события вызовется, когда кто то нажмет на кнопку. В обработчик будет передан объект события, у которого есть сслыка на target. target это объект который диспатчнул событие, в данном случае это объект на который нажали. так как target, это возможно не сама кнопка, а один и её детей, то мы запрашиваем currentTarget, что гарантирует нам то, что вернется именно тот объект, на событие которого мы подписались.
подробнее о фазах событий после того, как мы получили ссылку на кнопку, мы проверяем не равна ли она null, такое значения она может получить в процессе преобразования её к классу Btn. Если она не null, то мы её удаляем.
__________________
ranga |
|
|||||
Banned
[+1 13.12.12]
[+6 15.11.12] [+5 14.12.12] Регистрация: Sep 2012
Сообщений: 91
|
Цитата:
Добавлено через 1 час 50 минут только функция не удаляет кнопку после нажатия |
Часовой пояс GMT +4, время: 06:21. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|