Просмотр полной версии : Пространство имен AS3
Добрый день!
Предупрежу сразу, в AS3 не знаток, но пришлось "опрокинуться" на него по ходу работы.
Суть в следующем:
Насколько правильно я понял из справки, наследование в AS3 осуществляется на основе двух принципов:
1. Наследование посредством прототипов;
2. Наследование посредством фиксированных свойств и методов (fixed properties and methods).
Причем наследование на основе фиксированных свойств играет более важную роль, чем наследование посредством прототипов.
Чтобы совместить эти два принципа из-за совместимости, с одной стороны, с ECMAScript Edition 4, с другой - Flash Player API, используется пространство имен AS3.
Собственно вопрос и в этом: какова польза от такого механизма?
Ведь, казалось бы, наследование посредством прототипов более удобен, нежели фиксированные свойства, хотя бы по той причине, что, например, в этом случае возможно переопределение методов вне класса.
Можно создать собственное пространство имен, которое будет доступно наследникам. Можно создать множество методов с одним и тем же именем, но в разных пространствах.
Ясно, благодарю. По поводу наследования, а именно the traits object: выходит так, что теперь подклассы не просто наследуют свойства у своих суперклассов, но и хранят их в своих traits object, и из-за этого нет необходимости в использовании прототипов, точнее не в той степени, что было раньше, и в прокрутке цепочки прототипов.
P.S. Не понятно следующее: почему в некоторых темах раздела ActionScript 3 пишут выражения типа "во .fla файлах никто код не пишет" ?
Почему тот же код, что пишется в отдельном .as файле и отмечается в качестве класса документа, нельзя писать в .fla?
P.S. Не понятно следующее: почему в некоторых темах раздела ActionScript 3 пишут выражения типа "во .fla файлах никто код не пишет" ?
Почему тот же код, что пишется в отдельном .as файле и отмечается в качестве класса документа, нельзя писать в .fla?
Потому что это устаревшая практика. Код пишется в as-файлах, надо отделять логику от представления.
...надо отделять логику от представления.
Сказано верно, но не вижу ощутимой разницы между тем и другим, имею в виду способов написания кода в .as или в .fla, кроме тех случаев, когда пишут классы. В любом случае, спасибо еще раз.
Если ты хочешь седлать проект чуть больше чем банер и суешь во фла файл код, я бы тебя зарэзал, потому что есть как минимум 2 причины
1. Это безумное удовольствие поиска кода по файлу
2. Это безумно тупой редактор кода, который отличаеться от блокнота только подсветкой.
ну и бонусом AS3 уже стремиться к "взрослым" языкам, а взрослые языки, обычно непрощают всякой фигни
Если ты хочешь седлать проект чуть больше чем банер и суешь во фла файл код, я бы тебя зарэзал, потому что есть как минимум 2 причины
1. Это безумное удовольствие поиска кода по файлу
2. Это безумно тупой редактор кода, который отличаеться от блокнота только подсветкой.
ну и бонусом AS3 уже стремиться к "взрослым" языкам, а взрослые языки, обычно непрощают всякой фигни
Мастер слов, причем бесполезных. Видно, косяк под головой развелся.
1.Это же "безумное удовольствие поиска" будет и в .as.
2.Этот же "тупой редактор кода" пока единственное, до чего додумались в Adobe.
Вот это и есть "бесполезная фигня". Сказал бы, что используй
внешний редактор - было лучше.
Мастер слов, причем бесполезных. Видно, косяк под головой развелся.
1.Это же "безумное удовольствие поиска" будет и в .as.
2.Этот же "тупой редактор кода" пока единственное, до чего додумались в Adobe.
Вот это и есть "бесполезная фигня". Сказал бы, что используй
внешний редактор - было лучше.
2. А как же Flex Builder?
2. А как же Flex Builder?
__etc, честно говоря, с Flex Builder мало знаком (и поэтому сказать ничего не могу), возможно в будущем познакомлюсь. А пока необходмио освоить AS3, хотя и технологии родственны, но AS3 представляется интереснее.
__etc, честно говоря, с Flex Builder мало знаком (и поэтому сказать ничего не могу), возможно в будущем познакомлюсь. А пока необходмио освоить AS3, хотя и технологии родственны, но AS3 представляется интереснее.
Какие технологии? Во Flex тот же самый AS3.
Builder можно использовать в качестве редактора кода.
Ещё есть FlashDevelop.
Какие технологии? Во Flex тот же самый AS3.
Builder можно использовать в качестве редактора кода.
Ещё есть FlashDevelop.
Ну и хорошо. Кажется, "одним выстрелом двух зайцев убью".
Насчет технологий: скажем так, не AS3 и Flex родственны, а Flash и Flex таковы.
А флекса вообще не существует.
vooparker
13.07.2007, 18:02
А флекса вообще не существует.
и вообще ничего нет кроме 0 и 1
и вообще ничего нет кроме 0 и 1
Существует фреймворк под названием Flex :)
А самой технологии никакой не существует.
vooparker
13.07.2007, 18:14
Но еще по сути к флексу как технологии можно отнести mxml диалект. Хотя тоже понятно он в as преобразуется, но ведь все во что-то преобразуеются =)
На выходе мы все-равно получаем плюшку в виде Flash… как ни крути…
vooparker
13.07.2007, 18:28
ну собсна да... =)
Признаться не расчитывал на то, что увижу настоящие загрузчики шрифтов или даже SWF обозреватели, написанные на том же ActionsScript.
Признаться не расчитывал на то, что увижу настоящие загрузчики шрифтов или даже SWF обозреватели, написанные на том же ActionsScript.
http://dev.etcs.ru/blog/as3/fontloader/
http://dev.etcs.ru/blog/as3/resourcethief/
:D :D :D
Или это про них же речь? :)
http://dev.etcs.ru/blog/as3/fontloader/
http://dev.etcs.ru/blog/as3/resourcethief/
:D :D :D
Или это про них же речь? :)
Да, про них. Идеи, конечно, хороши. Загрузчиков шрифтов кажется всего две - у вас и кого-то еще. Это на сайте Nirth нашел.
После того, как увидел SWFExplorer, появилась мысль - а нельзя ли с помощью ActionScript реализовать стандартное диалоговое окно для выбора SWF файла? Прочел справку и начал с FileReference и FileReferenceList. Использовал метод browse(), указал расширение файла посредством FileFilter и т.д. Казалось бы, все шло удачно, и вдруг облом:
по наступлении события SELECT в качестве параметра констуктора URLRequest передал значение свойства name класса FileReference, что и есть имя файла. Далее объект URLRequest передаем в констуктор URLStream и т.д. Но дело в том, что свойство name содержит только относительный путь к файлу, т.е. опять нужно, чтобы загружаемый файл был в той директории, что и сам загрузчик. Да и к тому же заголовок диалогового окна содержит типа "Select file to upload by localhost", что не совсем уместно.
Вот так и задача осталась нерешенной.
И ей останется. Флеш не может обращаться к локальным файлам пользователя. Но все это вполне реализуемо в виде AIR-приложения, только не имеет смысла.
я согласен с Zone71 это бесполезный спор по поводу стиля, это анологично как вечный спор относительно html-кода одни восхищаются блокнотам, другие фии... редакторами =) все дело во вкусе
я согласен с Zone71 это бесполезный спор по поводу стиля, это анологично как вечный спор относительно html-кода одни восхищаются блокнотам, другие фии... редакторами =) все дело во вкусе
Где ты тут спор углядел? :D
Причем наследование на основе фиксированных свойств играет более важную роль, чем наследование посредством прототипов.
Чтобы совместить эти два принципа из-за совместимости, с одной стороны, с ECMAScript Edition 4, с другой - Flash Player API, используется пространство имен AS3.
Собственно вопрос и в этом: какова польза от такого механизма?
А вообще разницу-то понимаете ?
1. С прототипами при большом количестве типов объектов мы все функции смешаем и запутаемся =).
2. Реюзинг чужих прототив осложнён этим самым смешением.
А вот реюзинг готовых либ классов - очень простое и приятное занятие.
(ага, попробуйте переюзать кусочек кода зарытого во .фла :D )
3. При прототипном наследовании всегда получаются объекты (тип Object). А юзая строгую иерархию классов можно добиться высокой производительности за счёт типизации...
Вот например в ас3 типизированый код с математикой выполняется в сотни (!) раз быстрее. Если включить прототипную модель в ас3, то вся производительность упадёт до уровня ас1/2.
А вообще разницу-то понимаете ?
То, что я привел, - это цитата из справки, т.е. не я их выдумал.
Да и к тому же в ActionScript не очень большой опыт имею.
1. С прототипами при большом количестве типов объектов мы все функции смешаем и запутаемся =).
2. Реюзинг чужих прототив осложнён этим самым смешением.
А вот реюзинг готовых либ классов - очень простое и приятное занятие.
(ага, попробуйте переюзать кусочек кода зарытого во .фла :D )
3. При прототипном наследовании всегда получаются объекты (тип Object). А юзая строгую иерархию классов можно добиться высокой производительности за счёт типизации...
Вот например в ас3 типизированый код с математикой выполняется в сотни (!) раз быстрее. Если включить прототипную модель в ас3, то вся производительность упадёт до уровня ас1/2.
Это учту и буду знать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.