![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 18
|
Помогите плиз.
Нужно сделать следующее: есть картинка с сеткой 10 на 10 пикселей нужно, чтобы когда пользователь кликал на какую-то клеточку, происходил проверка: если эта клетка пустая, то она должна окраситься, если она занята, то ничего не должно происходить. Сначала пробовал создавать базу данных с координатами занятых клеток, и через php проверял, но это очень много времени занимает(одна клеточка секунд 5) Как сделать оптимально? |
|
|||||
package { import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; import flash.display.Stage; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private const CELL_SIZE:int = 10; private var grid:Shape; private var squares:Sprite; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); createGrid(); createSquares(); stage.addEventListener(MouseEvent.CLICK, clickHandler); } private function createGrid():void { grid = new Shape(); var g:Graphics = grid.graphics; g.lineStyle(1, 0xAAAAAA); var i:int = 1; while ((i * CELL_SIZE) < stage.stageWidth) { g.moveTo((i * CELL_SIZE), 0); g.lineTo((i * CELL_SIZE), stage.stageHeight); i++; } i = 1; while ((i * CELL_SIZE) < stage.stageHeight) { g.moveTo(0, (i * CELL_SIZE)); g.lineTo(stage.stageWidth, (i * CELL_SIZE)); i++; } addChild(grid); } private function createSquares():void { squares = new Sprite(); addChild(squares); } private function clickHandler(event:MouseEvent):void { if (event.target is Stage) { var x_pos:int = Math.floor(event.stageX / CELL_SIZE) * CELL_SIZE; var y_pos:int = Math.floor(event.stageY / CELL_SIZE) * CELL_SIZE; squares.graphics.beginFill(0x000000); squares.graphics.drawRect(x_pos, y_pos, CELL_SIZE, CELL_SIZE); squares.graphics.endFill(); } } } } |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 18
|
Спасибо!
и у меня два вопроса. Во-первых, что делает и как он определяет, что там нет квадрата во-вторых, можно ли потом(и как) стереть эти квадраты(по кнопке)??? |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|