Показать сообщение отдельно
Старый 08.01.2009, 19:00
romamik вне форума Посмотреть профиль Отправить личное сообщение для romamik Найти все сообщения от romamik
  № 1  
Ответить с цитированием
romamik

Регистрация: Dec 2008
Сообщений: 4
По умолчанию Проблема с DEACTIVATE

Я хотел сделать в игре так, чтобы по событию DEACTIVATE игра вставала на паузу, но часть из попробовавших запустить игру доложили, что у них иногда игра сама встает на паузу или встает на паузу после быстрых двойных щелчков. Я сделал маленький тест и с ним всё повторилось. У меня самого ни на одном компьютере проблема не воспроизводится.
Тест такой
Код:
package 
{
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;

	public class Main extends Sprite 
	{
		public var t:TextField = new TextField;
		public function Main():void 
		{
			if (stage) 
				Init();
			else 
				addEventListener(Event.ADDED_TO_STAGE, Init);
		}
		
		public function Init(e:Event = null):void
		{
			addChild(t);
			t.text = "active";
			t.autoSize = TextFieldAutoSize.LEFT;
			stage.addEventListener(Event.DEACTIVATE, Deactivate, false, 0, true);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown, false, 0, true);
		}
		
		public function Deactivate(e:Event):void
		{
			t.text = "Inactive. Give focus and press A to activate";
		}
		
		public function KeyDown(e:KeyboardEvent):void
		{
			if(e.keyCode == 65)
				t.text = "active";
		}
	}
}
Вопрос: как сделать эту функциональность правильно? Я думаю, может ставить на паузу только еще и при условии, что мышка вне флешки...

Тест в откомпилированном виде здесь. Если кому интересно, игра в которой проявляется проблема здесь, несколько устаревшая версия, но для данного вопроса это несущественно.