![]() |
|
||||||||||
|
|
|
|||||
|
Здравствуйте. Я хотел узнать, изучая экшенскрипт по учебникам adoba в голове иногда начинается полный бардак. Так как мне кажется что в этих учебниках правильность написания кода представлена не совсем правильно а в обратном порядке или может быть я чтото не так понимаю. Подскажите пожайлуста какой обрывок кода написан наиболее правильно.
1) /*1) вызываем функцию setLanguage */ setLanguage(); /*2) добавляем обработчики кнопок для функции setLanguage*/ English_btn.addEventListener (MouseEvent.CLICK, setEnglish); German_btn.addEventListener (MouseEvent.CLICK, setGerman); Spanish_btn.addEventListener (MouseEvent.CLICK, setSpanish); /*3) Меняем значение переменной language*/ function setEnglish(e:MouseEvent):void{ language = "English"; setLanguage(); } function setGerman(e:MouseEvent):void{ language = "German"; setLanguage(); } function setSpanish(e:MouseEvent):void{ language = "Spanish"; setLanguage(); } /*4) Выводим значение переменной language */ function setLanguage():void{ if(language == "English") { info_txt.text = "The animacion has played " + String(count) +" x."; } else if(language == "German") { info_txt.text = "Die Animation wurde " + String(count) + " x abgespielt."; } else if(language == "Spanish") { info_txt.text = "La animaciyn ha juardo " + String(count) + " x."; } } function setLanguage():void { if (language == "English") { info_txt.text = "The animation has played " + String(count) + " x."; } else if (language == "German") { info_txt.text = "Die Animation wurde " + String(count) + "x abgespielt."; } else if (language == "Spanish") { info_txt.text = "La animación ha jugado " + String(count) + "x."; } } setLanguage(); english_btn.addEventListener(MouseEvent.CLICK, setEnglish); german_btn.addEventListener(MouseEvent.CLICK, setGerman); spanish_btn.addEventListener(MouseEvent.CLICK, setSpanish); function setEnglish(e:MouseEvent):void { language = "English"; setLanguage(); } function setGerman(e:MouseEvent):void { language = "German"; setLanguage(); } function setSpanish(e:MouseEvent):void { language = "Spanish"; setLanguage(); } |
|
|||||
|
В отличии от C, где до вызова функции должно быть хотя бы ее объявление, в данном примере порядок записи кода не важен. Более мудрые товарищи на форуме, пожалуй, смогут объяснить почему так. От себя добавлю, что если оба варианта кода работают корректно, то оба они написаны правильно.
|
|
|||||
|
Цитата:
Я имею в виду тот порядок обработки тех или иных функций Например: Вышел из дома, подошел к машине, сел в машину, повернул ключ замка зажигания. А не в обратном порядке как описано в учебнике. Если смотреть код из учебника №2) то тут получается что мы сначало проверяем значение переменной и выводим сообщение, потом обрабатываем нажатие кнопки, и в последнюю очередь изменяем значение переменной. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Описание функции это описание, а вызов это вызов. Пока Вы пишете в кадрах, нет разницы где Вы разместите описание — Ваш код при компиляции будет преобразован в класс, функции будут выдернуты из последовательного кода и займут свое место в теле класса, а остальной код, включая вызовы, будет в сохраненном порядке помещен в конструктор. Функции — это члены класса. К ним обращаются по имени, а не по порядковому номеру. Нет разницы, в каком порядке у Вас в кармане лежат монетки.
__________________
Reality.getBounds(this); |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Цитата:
test = function (){} - это объявление переменной же. Я к тому, что под понятием "объявление функции" именно первый вариант имеется в виду, Wolsh прав ![]()
__________________
hauts.ru |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|