|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2009
Сообщений: 34
|
Не могу понять "Закрытие функции"...
Извиняюсь за вопрос, но думаю, что многие по началу так же тупят как и я
Начал изучать ActionScript 3, обратился к первоисточнику к документации от Adobe. Скачал их "Программирование на ADOBE ® ACTIONSCRIPT® 3.0", но пока очень туго идёт Вот например фрагмент со страницы 98 ... Цитата:
2 дня читаю но понять не могу и они ни словом о том зачем и почему "function foo():Function" функции "foo" присваивают тип "Function" хотя судя по листингу "var myProduct:Function = foo();" это прямо связано с типом переменной в функции "bar" . Кто нибуть может понятно объяснить этот фрагмент руководства от ADOBE ? |
|
|||||
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
а что здесь не так, помойму всё нормально
единственное не лучший стиль програмирования в данном примере но это уж на любителя... и так: есть функция bar которая создает три переменных две типа int и одна функция, как известно переменной можно присвоить функцию а точнее получим результат выполнения функции, если не ошибаюсь есть функция foo которая содержит в себе переменную типа int а так же объявление вложенной функции которая в последствие возвращается ну а дальше уже расчеты, результат понятен как считается или пояснить? |
|
|||||
функция foo вернет на функцию rectArea
вызывая функцию myProduct(4), мы вызываем функцию rectArea(4) зы: в данном случае это просто ужасно, однако иногда довольно-таки полезно
__________________
я могу стать всем, если только захочу |
|
|||||
loading 50%
|
Смысл в том, что можно закоментировать:
function foo():Function { var x:int = 40; function rectArea(y:int):int // function closure defined { return x * y } return rectArea; } function bar():void { //var x:int = 2; //var y:int = 4; var myProduct:Function = foo(); trace(myProduct(4)); // function closure called } bar(); // 160 Так вот, две другие переменных никакого отношения к этой третьей не имеют. То, что внутри функции foo есть похожие буквы в названиях переменных не важно. |
|
|||||
Регистрация: May 2009
Сообщений: 34
|
А зачем нужно было объявлять тип "Function" в функции "foo" и переменной "myProduct"?
|
|
|||||
Регистрация: Aug 2007
Сообщений: 467
|
Читайте внимательно:
Цитата:
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать! |
|
|||||
вообще, был приведен довольно плохой пример, из которого не совсем очевидно зачем это вообще может пригодится. да и названия типа foo bar не добавляют понятности.
постараюсь попонятнее: function getNeededFunction(type:int):Function { if (type == 1) { return function add(a:int, b:int):int { return a + b; } } else if (type == 2) { return function multiplicat(a:int, b:int):int { return a * b; } } } var func1:Function = getNeededFunction(1); var func2:Function = getNeededFunction(2); trace(func1(8, 5)); //13 trace(func2(8, 5)); //40
__________________
я могу стать всем, если только захочу |
|
|||||
Регистрация: May 2009
Сообщений: 34
|
Цитата:
Felicast - огромное спасибо, так действительно становится понятно! И ещё, правда не в тему, делал тесты с soundом всё работает, но когда публикую в exe происходит какая то непонятка, exe-зешник выходит размера немного больше чем mp3 файл и пока лежит в каталоге куда я его публиковал воспроизводит звук, но как только я его перемещаю в другой каталог перестаёт работать. mp3 файл я затаскивал с помощью URLRequest и для SWF всё логично, поменялся путь вот и не работает, но для exe-зешника как то не понятно, он же вроде всё в себя затащил отчего и стал по размеру как ауди-файл, почему он от пути зависит не пойму? Последний раз редактировалось p0okm; 15.08.2009 в 00:37. |
|
|||||
Цитата:
Цитата:
__________________
я могу стать всем, если только захочу |
|
|||||
Регистрация: May 2009
Сообщений: 34
|
Просто я так понял, что в exe-зешнике MP3 должен быть внутри, раз он такой большой.
При публикации FLASH у меня стоит "Access local files only", а при публикации в EXE никаких настроек нет. |
Часовой пояс GMT +4, время: 13:14. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|