Показать сообщение отдельно
Старый 05.11.2012, 23:52
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 24  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну да, я и забираю парой. Сделал счетчик, по ентерфрейму его увеличиваю и забираю координаты и команду.
Код AS3:
		//// счетчик-итератор для воспроизведения
		private var _stepCount:uint; 
		////... слушатель нажатия на кнопку воспроизведения
		private function clickHandler(event:MouseEvent):void 
		{
			//// удаляем холст с рисунком юзера
			super.removeChild(_canvas);
			//// создаем холст для воспроизведения
			_historyCanvas = new Shape(); 
			super.addChild(_historyCanvas);
			_historyCanvas.graphics.lineStyle(2, 0xFFEEEE);
			//// первая отрисовка сохраненного пути целиком за один раз (бледненько)))
			_historyCanvas.graphics.drawPath(_path.commands, _path.data);
			//// установки линии для воспроизведения
			_historyCanvas.graphics.lineStyle(2, 0x226600);
			//// начальное значение счетчика
			_stepCount = 0;
			//// подписка на ентерфрейм для "покадрового" воспроизведения
			super.addEventListener(Event.ENTER_FRAME, restoreHandler);
		}
 
		private function restoreHandler(event:Event):void 
		{
			//// получаем из Пути команды и координаты
			var command:uint = _path.commands[_stepCount];
			var nextX:Number = _path.data[_stepCount * 2];
			var nextY:Number = _path.data[_stepCount * 2 + 1];
			if (command == 1) 
			{
				_historyCanvas.graphics.moveTo(nextX, nextY);
			}
			else 
			{
				_historyCanvas.graphics.lineTo(nextX, nextY);
			}
			//// увеличиваем счетчик
			_stepCount += 1;
			//// если вектор команд "кончился", перестаем слушать ентерфрейм
			if (_stepCount == _path.commands.length)
			{
				super.removeEventListener(Event.ENTER_FRAME, restoreHandler);
			}
		}
__________________
Reality.getBounds(this);