Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.03.2011, 15:55
Владимир вне форума Посмотреть профиль Отправить личное сообщение для Владимир Найти все сообщения от Владимир
  № 1  
Ответить с цитированием
Владимир
 
Аватар для Владимир

Регистрация: Mar 2011
Сообщений: 7
По умолчанию Почему не работает условие event.keyCode == Keyboard.ENTER

Adobe Professional CS5 (11.0.0.485), AS3, Flash Player 11. Изучаю вообщем ActionScript.

Выполняю пример из руководства http://help.adobe.com/ru_RU/ActionSc...rogramming.pdf
страница 30-38, три раза всё удалял и делал заного...

Там решенный пример, который у меня почему то неработает. По заданию нужно в текстовое поле textIn набрать имя, нажать ENTER, скрипт сверяет это имя со списком имен из массива validNames. Если имя подходит, тогда в текстовое поле mainText пишется сообщение "Hello [name]".

свойства textIn - тип редактируемый, т.е. InputText в английской версии, и ещё во вкладке "контейнер и поток" поведение: однострочный ставлю (как в англ. версии я хз).

Загвостка в том, что по нажатию ENTER ничего не происходит.

код HelloWorld.fla (действие - первого кадра):
Код AS3:
import flash.ui.Keyboard;
 
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("");
 
mainText.border=true;
textIn.border = true;
 
textIn.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
 
function keyPressed(event:KeyboardEvent):void
{
	if (event.keyCode == Keyboard.ENTER)
	{
		mainText.text = myGreeter.sayHello(textIn.text);
	}
}
код Greeter.as:
Код AS3:
package
{
	public class Greeter
	{
		public static var validNames:Array = ["Sammy", "Frank", "Vova"];
 
		public function sayHello(userName:String = ""):String
		{
			var greeting:String;
			if (userName == "")
			{
				greeting = "Hello. Please type your user name, and then press the Enter key.";
			}
			else if (validName(userName))
			{
				greeting = "Hello, " + userName + ".";
			}
			else
			{
				greeting = "Sorry " + userName + ", you are not on the list.";
			}
			return greeting;
		}
		public static function validName(inputName:String = ""):Boolean
		{
			if (validNames.indexOf(inputName) > -1)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}
Я для теста в коде заменил event.keyCode == Keyboard.ENTER на event.keyCode == Keyboard.SPACE и всё работало корректно. Хм, но почему тогда ENTER несрабатывает?

Старый 25.03.2011, 16:01
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
вы ведь не в самом флэше тесты делаете, а просматриваете swf отдельно в плеере или через браузер?

Старый 25.03.2011, 16:06
Владимир вне форума Посмотреть профиль Отправить личное сообщение для Владимир Найти все сообщения от Владимир
  № 3  
Ответить с цитированием
Владимир
 
Аватар для Владимир

Регистрация: Mar 2011
Сообщений: 7
Цитата:
Сообщение от i.o. Посмотреть сообщение
вы ведь не в самом флэше тесты делаете, а просматриваете swf отдельно в плеере или через браузер?
верно, через браузер тоже просматриваю

Старый 25.03.2011, 18:36
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 4  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
http://www.flasher.ru/forum/showpost...17&postcount=5
__________________
Нормально делай — нормально будет!

Старый 26.03.2011, 08:54
Владимир вне форума Посмотреть профиль Отправить личное сообщение для Владимир Найти все сообщения от Владимир
  № 5  
Ответить с цитированием
Владимир
 
Аватар для Владимир

Регистрация: Mar 2011
Сообщений: 7
У меня даже на другом копме не работает (но там тоже плеер11 версии), вот выложил скомпиленное http://seosliv.ru/flash/HelloWorld.swf

Старый 26.03.2011, 09:16
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
уберите все лишнее (если есть) и выложите fla. Приведенный выше код должен работать.

Старый 26.03.2011, 10:36
Nt9142 вне форума Посмотреть профиль Отправить личное сообщение для Nt9142 Найти все сообщения от Nt9142
  № 7  
Ответить с цитированием
Nt9142

Регистрация: Apr 2010
Адрес: Kemerovo
Сообщений: 11
Цитата:
код HelloWorld.fla (действие - первого кадра):
А где вы импортируете Greeter.as?
или в кадрах он сам классы находит..?

Старый 26.03.2011, 14:42
lMarikl вне форума Посмотреть профиль Отправить личное сообщение для lMarikl Найти все сообщения от lMarikl
  № 8  
Ответить с цитированием
lMarikl

Регистрация: Oct 2010
Сообщений: 3
Если я не ошибаюсь то не хватает импорта: import flash.events.KeyboardEvent;

Старый 26.03.2011, 15:05
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 9  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
Сообщение от lMarikl Посмотреть сообщение
Если я не ошибаюсь то не хватает импорта: import flash.events.KeyboardEvent;
Код в кадре написан! Подобные импорты не нужны.

Старый 27.03.2011, 20:30
Владимир вне форума Посмотреть профиль Отправить личное сообщение для Владимир Найти все сообщения от Владимир
  № 10  
Ответить с цитированием
Владимир
 
Аватар для Владимир

Регистрация: Mar 2011
Сообщений: 7
Цитата:
Сообщение от i.o. Посмотреть сообщение
уберите все лишнее (если есть) и выложите fla. Приведенный выше код должен работать.
Выкладываю сорцы:

http://seosliv.ru/flash/HelloWorld.fla
http://seosliv.ru/flash/Greeter.as

Буду рад любым замечаниям.

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:51.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.