Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   ActionScript - полная лажа" или "Как не надо делать интерпретаторы" (http://www.flasher.ru/forum/showthread.php?t=36761)

Crazy 10.01.2003 17:39

Цитата:

Оригинал написал(а) Смольный (Smolniy)
Я, помнится, все до препода домогался - компилируется или интерпретируется приложение в JVM, он говорил что компилируется.
Обманул. :)

МОЖЕТ докомпилится. Причем, продвинутые реализации читают байткод, восстанавливают по нему семантическое дерево и заново повторяют этам кодогенерации, но уже для данной платформы. По-дефолту же байткод просто интерпретируется (в отличие от .NET, где поо-дефолту идет докомпиляция), причем он ориентирован именно на режим интерпретации.

BTW, если интересно, то рекомендую поискать материалы про проект Джус -- там основная идея была в том, чтобы вообще не формировать байткод, а просто сериализовать дерево разбора. А уже перед исполнением по этому дереву выполняется нативная кодогенерация. Гадкая Java удушили этот проект... :)

Crazy 10.01.2003 17:44

Цитата:

Оригинал написал(а) [subway]design
Таким образом, и Флеш и Ява - интерпретаторы одного класса (вида, отряда, семейства).
У Java две части -- компилирующая и исполняющая -- разделены. У флэша -- смешаны в одну кучу.

Nox Noctis 10.01.2003 18:14

оооо ёёёёё.... шире вселеееенооой гооооре моооёёёё.... :)))))))
офигенный все-таки топик =))) настроение поднимает... ууу....

2Смольный
по поводу индексации и проч.: просто изначально тема была начата с частностей, хотя потооом (на пятой странице :)) ) автор-таки сознался что на самом-то следует мыслить глобальными категориями, не зацикливаясь между гоуту и плеями =)) война-фигня, главное - маневры !.. 8)

2Stary
очень спорно =) насчет дизайнеров, королей и капусты =)

Stary 10.01.2003 18:32

2 Смольный

Что-то я не пойму. Какие же могут быть сцены в пределах одного мувика (если применяется mc.gotoAndPlay() )? Или могут? Я никогда не связывался со сценами и вообще нужды в них не вижу.

Давайте условимся. Повторяющийся в 100 процентах случаев глюк - это не глюк, а недокументированная возможность. Нужно только их изучить и помнить, чтобы не наткнуться на проблемы. Вот когда в одном случае срабатывает так, а в другом - эдак - вот это глюк действительно. Чтобы его обойти, нужно вообще отказаться от данного решения и использовать какое-нибудь другое. Именно это, бывает, происходит, например, если в первом кадре написать stop(), а потом пытаться проиграть все в потоке без прелоадера. В одном случае происходит остановка на первом кадре, в другом - нифига. Вот это глюк, я считаю.

ish 10.01.2003 19:39

оо, дяденька смольный пришел :))

Код:

MovieClip.prototype.gotoAndPlay = function  (frame) {
        tellTarget (this._target) {
            gotoAndPlay (frame);
        };
};
MovieClip.prototype.gotoAndStop = function  (frame) {
        tellTarget (this._target) {
            gotoAndStop (frame);
        };
};

вот так определяются методы anymc.gotoAndStop и anymc.gotoAndPlay самим плейером... при желании можно переопределить под себя )

[subway]design 10.01.2003 19:49

Спасибо, просветили.

infinity 20.01.2003 15:59

Похоже вторую волну этого топика я пропустил.

чтож, начнем разбор полетов :)
как выяснилось, тормоза АС - это фирменные маркетинговые решения макромедии :D
и все с этим согласились.
сколько не пытался объяснить, что я считаю неудачной *внутреннюю* реализацию
АС и не имею ничего против синтаксиса, все равно никто не понял. ну и ладно :(

2 mort и остальным:
ну и зацепили же вы это приведение типов, хотя я в первую очередь хотел
сказать, что поиск по строковым идентификаторам, это плохо для производительности,
как в индексе массива, так и в идентификации переменной, поскольку переменные
в АС тоже при вычислении определяются по их названию (это доказывает
Код:

var var1="var";
var var2="iable";
var variable="Hello";
trace(eval(var1+var2));

как я НЕОДНОКРАТНО говорил выше.

Цитата:

3. Ну а ежели кто-то желает делать рассчеты траектории движения баллистических ракет в реальном времени, пускай воспользуется ассемблером.
lol хотел бы я посмотреть рассчет движения баллистических ракет на ассемблере :D

Цитата:

В AS сделано все для удобства и быстрого написания прикладного кода без особых заморочек на оптимизацию и прочего.
мда... что тут говорить. оптимизируй - не оптимизируй, а тормозить будет всеравно :(

Цитата:

Прощает твоё "Полная лажа" только исключительная субъективность размышлений отдельных индивидумов.
Спасибо, что простили, меня это ужасно радует :D
кстати я никогда не претендовал на объективность своих рассуждений.

Цитата:

Не нужно гадить на всех со своей колокольни.
А я то думал, что гадят тут только на меня... :(

говорите АС это скрипт для дизайнеров, простой и интуитивно понятный. это
конечно правда, если писать в кадрах только stop() и play(), но как только
надо написать что-то более-менее серьезное, даже у программистов волосы
дыбом становятся от непредсказуемости поведения плеера :(

2 Смольный (Smolniy)
Цитата:

"хранение индекса у массива и поиск по индексу" в принципе не существует. Есть "вычисление адреса в памяти элемента массива в зависимости от индекса", это другая веСТЧЬ.
суть не меняеться, а суть - это перебор строкового списка.

2 Stary
не переживай, используй все как использовал, от тормозов всеравно ты не избавишься :D

infinity 20.01.2003 16:10

2 [subway]Design
Цитата:

2 бесконечность: перечитайте ту мессагу, пожалуйста, и, если я не прав, ясно и четко выскажите свое мнение и то, почему я не прав. Спасибо.
какую мессагу конкретно?

Выводы?
Выводы:
Что ж, может я и ошибся. ActionScript - не полная лажа. Просто лажа, но не
полная :D лажа, процентов эдак на 95 :D :D :D

Что я хотел сказать названием топика, так это то, что АС можно было сделать
ГОРАЗДО лучше и быстрее, при этом его удобность не пострадала, а тут раздулся
такой флейм, хоть и довольно веселый :) похоже ли на театр - врядли, больше
похоже на сессию верховной рады - все говорят, но никто не слушает :) :) :)
Приведу последний пример - perl по функциональности не хуже АС, просто
не привязанн к конкретной программе, но работает ГОРАЗДО быстрее АС.
где, говорите маркетинг? а ламера где?

ish 20.01.2003 16:25

во блин :mad:

Лжеучёный 16.09.2004 16:58

Весь тред читать ломало, тем более тут больше флейма.
Отвечаю на следующий вопрос: почему доступ к переменным осуществляется через название, а не через адрес.

Очень просто. Вот простой пример.
Допустим, у нас есть 5 мувиклипов, названных button1, button2, button3, button4, button5.

мы может обрабатывать их в цикле:

for (var i=1; i<6; i++)
initButton(_root["button"+i]);

Если бы доступ был по адресу, то такая фишка была бы просто невозможна.

Я пока не дизасмил флеш-плеер, и не знаю: используется у них какая-то оптимизация или нет. Надеюсь, они используют хеш-таблицы для ускорения поиска переменных. По крайней мере в 7-м плеере.

Но одно я знаю точно: строки в байт-коде хранятся один раз в пуле строк, а затем доступ к ним происходит по индексу.
Так что по крайней мере здесь они некоторую оптимизацию выполнили (как по размеру, так и по скорости).


Часовой пояс GMT +4, время: 21:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.