|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Механизм реального наследования в AVM2
Буду рад любой информации по теме
(собственно, что делает компилятор, когда видит слово class?) Что за управление наследованием через Класс наследований? PS Работа компилятора для AS2-кода описана тут Соответственно механизм наследования основан на прототипах. Подобный фундаментальный разбор наследования хочется получить и тут для AVM2. |
|
|||||
Modus ponens
|
Информация для изучения:
Компилятор: http://opensource.adobe.com/svn/open...k/modules/asc/ Немного полезной инфы по компилятору: https://developer.mozilla.org/En/Tam..._Documentation Спеки SWF: http://www.adobe.com/devnet/swf/ В двух словах, примерно так: если в АС2 все пользовательские классы были функциями прописаными где-то в _global, то в AS3 - это "запечатанные" объекты - объекты изменеие набора свойств которых в процессе работы вызывает ошибку (это если классы не динамические - по умолчанию), и находяться они не в _global, а в неймспейсах-пакетах. Я думаю, что проще всего это представить через flash.utils.describeType() - это что-то вроде "побочного эффекта" внутренней валидации объектов, которую использует плеер - т.е. describeType представляет вам полный перечень того, с чем плеер будет сравнивать экземляр вашего класса.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 17.02.2009 в 21:03. |
|
|||||
стервочка (я мужик)
|
@wvxvw
1. http://opensource.adobe.com/svn/open...k/modules/asc/ - это не комплятор, а парсеры байт- и исходного кодов. 2. https://developer.mozilla.org/En/Tam..._Documentation - тут инфа не по флэшовому компилятору. они оооочень по разному работают. 3. flash.utils.describeType - это далеко не полный перечень. |
|
|||||
Modus ponens
|
Да, приватные методы / свойства не показываются, а предложи более полный перечень?
А что по твоему такое компилятор, если не парсер + упаковщик? ASC в Тамарине и в флексовом SDK один и тот же... в этом как бы вся фишка... просто существуют пакеты flash.* которые компилируются во флешевые проекты, а в Тамарин, пожалуй что только builtin.abc, но наверняка вся задумка в том, чтобы можно было добавлять свои, но я не вникал, так что тут могу ошибаться... Ну и естественно, информацию по остальным флешевым / флексовым компиляторам нужно искать в другом месте Но по MXMLC / COMPC - легко найти, а по asc_authoring.jar кроме этого http://osflash.org/flashcoders/the_flash_9_compiler , пожалуй что ничего и нет... Лишь бы спорить
__________________
Hell is the possibility of sanity |
|
|||||
стервочка (я мужик)
|
Олег, ты хоть бы для видя по сторонам посмотрел. там исходники анализаторов ( лексического и семантического ), которые является презервативами одеваемыми на компилятор, и в случаи чего могу быть сменены. компилятор занимается, в нашем случаии, сборкой в байт-код, а не парсингом в промежуточные данные. и он лежит в соседнем проекте. вместе с компилятором лежит и оптимизатор, который, почему-то, сменным презервативом не является.
что касается тамарина, то хотя бы код сравнил бы. чего с тобой спорить, если ты совсем не в теме? P.S: про describeType ... на http://livedocs.adobe.com/flex/3/lan...ge-detail.html - развивайся. |
|
|||||
Modus ponens
|
Смотри, я согласен с тем, что ты говоришь, но вопрос был такой:
"что делает компилятор, когда видит слово class?" Тогда, по-твоему ответ будет: ничего, потому что он его не видит, а получает эту информацию от анализатора? Правильно? Ну и чем такая информация поможет? А по поводу Тамарина - я действительно не в курсе, сорь, из того, что читал, я понял, что задумка как раз таки была в том, чтобы использовать один и тот же компилятор. ЗЫ. Спасибо за ссылку, действительно не знал.
__________________
Hell is the possibility of sanity |
|
|||||
стервочка (я мужик)
|
wvxvw, ну так, то он же её и получает но чуть позже, и совсем не в том проекте, что ты дал. а вообще он создаёт дефинишен-описание в байт-коде. кстати .. на самом деле, классы лежат в глобале просто к нему доступа нету.
|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Actionscript 3.0 and Performance Tuning
Адобовцы пишут: class A { var a:Number = 3.14; var b:String = 'a string'; var c:int = -1; public function A() { trace('Constructor'); } public function method(){ trace('A.method'); } } Ну почти верно (не указано, что это из инитклипа записывается), вот тут бы адобовцам и рассказать (показать) что тот же самый код в AS3 на самом деле делает, но вместо этого непонятная картинка: |
|
|||||
Modus ponens
|
А классы они как бы в АС3 не создаются в рантайме... =/ они уже компилируются готовыми, так что кода аналогичному примеру на АС2 быть вообще не может. Картинка только показывает как и откуда компилятор на этапе создания класса будет искать его методы и свойства.
__________________
Hell is the possibility of sanity |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Цитата:
Но как тогда действует оператор new()? И можно ли поиметь доступ к .abc как к обычному бинарному массиву (наверное, что-то вроде "прочитать самого себя")? |
Часовой пояс GMT +4, время: 10:38. |
|
« Предыдущая тема | Следующая тема » |
|
|