Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> оператор switch, область действия switch,видимость var 
:(
    Опции темы
Incensus
Дата 6.7.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 9.4.2009
Где: Харьков

Репутация: нет
Всего: нет



В хелпе flash есть такой пример на ActionScript 2.0:
Код

var listenerObj:Object = new Object();
listenerObj.onKeyDown = function() { 
 switch (String.fromCharCode(Key.getAscii())) { 
 case "A" : 
 trace("you pressed A"); 
 break; 
 case "a" : 
 trace("you pressed a"); 
 break; 
 case "E" : 
 case "e" : 
 trace("you pressed E or e"); 
 break; 
 case "I" : 
 case "i" : 
 trace("you pressed I or i"); 
 break; 
 default : 
 trace("you pressed some other key"); 
 break; 
 } 
};
Key.addListener(listenerObj);


Я постарался его изменить на
Код
var str:String = "emply str";
this.createTextField("my_txt",1,50,50,300,100);
my_txt.text = str;
trace(my_txt.text);
var listenerObj:Object = new Object();
listenerObj.onKeyDown = function() {
    /*Для возврата строки используется метод String.fromCharCode()-Метод; возвращает строку созданную из символов, представленных кодами ASCII, в параметрах.*/
    switch (String.fromCharCode(Key.getAscii())) {
        case "A" :
            str = "you pressed A";
            break;
        case "a" :
            str = "you pressed a";
            break;
        case "E" :
        case "e" :
            str = "you precced e or E";
            break;
        default :
            /*если была нажата клавиша, не обработанная ни одним из методов листенера, выполняется ветвь по умолчанию*/
            str = "you pressed some other key";
    }
};
Key.addListener(listenerObj);

но в swf-файле почему-то не меняется строка str. Почему же у меня не получается передать в строку "you pressed ..."???

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  swit_h.rar 4,53 Kb
PM MAIL   Вверх
bars80080
Дата 6.7.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



вот эта штука Key.addListener(listenerObj); - суть слушатель (listener). она слушает события.
в данном случае слушатель назначен на нажатия кнопок. то что вы внесли значение в поле, вызывает только одно событие - изменение значения поля. но мало того, что оно никак не связано с кнопками, так оно ещё и реализовано до назначения слушателя.
PM MAIL WWW   Вверх
Incensus
Дата 7.7.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 9.4.2009
Где: Харьков

Репутация: нет
Всего: нет



Хммммм...

С листенерами я знаком... но вот второй части вашего замечания я не совсем понял.
default-это то что выполняется в любом случае, я перенес создание поня в default. Но в trace все равно возвращает undefined, а строка оказывается совсем пуста.
Код

var listenerObj:Object = new Object();
listenerObj.onKeyDown = function() {
    var str:String = "emply str";
    /*Для возврата строки используется метод String.fromCharCode()-Метод; возвращает строку созданную из символов, представленных кодами ASCII, в параметрах.*/
    switch (String.fromCharCode(Key.getAscii())) {
        case "A" :
            str = "you pressed A";
            break;
        case "a" :
            str = "you pressed a";
            break;
        case "E" :
        case "e" :
            str = "you precced e or E";
            break;
        default :
            /*если была нажата клавиша, не обработанная ни одним из методов листенера, выполняется ветвь по умолчанию*/
            str = "you pressed some other key";
            this.createTextField("my_txt",1,50,50,300,100);
            my_txt.text = str;
            trace(my_txt.text);
    }
};
Key.addListener(listenerObj);

PM MAIL   Вверх
bars80080
Дата 7.7.2009, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



Цитата(Incensus @  7.7.2009,  01:02 Найти цитируемый пост)
default-это то что выполняется в любом случае

default, это то, что выполняется, если была нажата клавиша не упомянутая в других вариантах. вы вставляли курсор в поле и жали на клавишу?
PM MAIL WWW   Вверх
Incensus
Дата 7.7.2009, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 9.4.2009
Где: Харьков

Репутация: нет
Всего: нет



Ну вот посмотрите пожалуйста исходники, но кажется, что там даже не создалось текстовое поле.
В Output выводит undefined при каждом нажатии клавиши.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  switch.rar 5,19 Kb
PM MAIL   Вверх
bars80080
Дата 7.7.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



мой флэш8 не понимает этого формата файлов
PM MAIL WWW   Вверх
Incensus
Дата 9.7.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 9.4.2009
Где: Харьков

Репутация: нет
Всего: нет



Очень интересно. Там в архиве обыкновенные swf и fla...

У меня стоит Flash CS3. А у вас что, MX???
PM MAIL   Вверх
bars80080
Дата 10.7.2009, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



нет, macromedia flash 8 (следующая над MX, как я понимаю)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.