|
|
|||||
Регистрация: Mar 2013
Сообщений: 1
|
Привязка события
Добрый день,не так давно начал изучать as3 и пока что проблем как таковых не возникало,но вот недавно я попытался нарисовать прямоугольник(динамически) и повесить на него слушатель событий,код компилируется и выполняется ,но вот само событие не происходит,подскажите пожалуйста
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.display.Shape; /** * @author Maxim */ public class GameView extends Sprite { public static const CELL_WIDTH:int = 30; private var _rows:int = 20; private var _columns:int = 20; private var _width:int; private var _height:int; private var mainShape : Shape = new Shape(); private var rest : Shape = new Shape(); private var menu : Shape = new Shape(); public function GameView () { _width = _columns * CELL_WIDTH; _height = _rows * CELL_WIDTH; init (); stage.addEventListener(MouseEvent.CLICK,MouseClicked);//работает mainShape.addEventListener(MouseEvent.CLICK,MouseClicked);//не работает //была задумка что проблема в глубине т.к у mainshape глубина = 0,но menu.addEventListener(MouseEvent.CLICK,MouseClicked);//не работает //хотя находиться и на 3 уровне глубины(самый верхний) } private function MouseClicked (e:MouseEvent):void { trace (Math.floor(e.localY/CELL_WIDTH)+":"+Math.floor(e.localX/CELL_WIDTH)); } private function init ():void { Init_MainShape (); Init_rest (); } private function Init_MainShape ():void { mainShape.graphics.beginFill (0xEEEEEE); mainShape.graphics.lineStyle (2.0); mainShape.graphics.drawRect (0, 0, _height, _width); mainShape.graphics.endFill (); addChild (mainShape); } private function Init_rest ():void { menu.graphics.beginFill (0xEEEEEE); menu.graphics.lineStyle (2.0); menu.graphics.drawRect (_columns*CELL_WIDTH+20,0,157,362); rest.graphics.lineStyle (1.0, 0x999999); for (var i: int = 1; i < _columns; i++) { rest.graphics.moveTo (i * CELL_WIDTH, 0); rest.graphics.lineTo (i * CELL_WIDTH, _height); } for (i = 1; i < _rows; i++) { rest.graphics.moveTo (0, i * CELL_WIDTH); rest.graphics.lineTo (_width, i * CELL_WIDTH); } rest.graphics.endFill (); addChild (rest); addChild(menu); } } } |
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
Если вы слушаете сцену на предмет клика, то нет смысла слушать дочерние объекты DisplayObject на сиё, добавленные в список отображения
public function GameView () { _width = _columns * CELL_WIDTH; _height = _rows * CELL_WIDTH; init (); stage.addEventListener(MouseEvent.CLICK,MouseClicked);//работает } private function MouseClicked (e:MouseEvent):void { trace (Math.floor(e.currentTarget.localY/CELL_WIDTH)+":"+Math.floor(e.currentTarget.localX/CELL_WIDTH)); } |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 21:18. |
|
« Предыдущая тема | Следующая тема » |
|
|