особенности AS1 AS2 AS3 @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 57 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
eddy444 Муж.
Модератор
315
Сообщения: 14467
Зарегистрирован: 05.05.03
Откуда: NSK
Заголовок сообщения: особенности AS1 AS2 AS3
Сообщение Добавлено: 1 Декабрь 2005, 15:41:08 
http://deforum.ru/forum/viewtopic.php?p=655674#655674
продолжаем тут:
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 1 Декабрь 2005, 18:26:36 

Цитата:
_iv, cтарина, не поделишся конкретикой?


- делюсь постоянно. хотя дело не в примерах.
как я уже сказал, трюки противоречат идеологии AS2.

если тебе нужна конкретика, то, например,
если ты имеешь AS2 класс, то не можешь сделать "по настоящему" приватные методы.
т.е. возможно обращение вида
this.any_class_instance["anyPrivateMethod"]()
или удаление anyPrivateMethod и т.п.
даже если anyMethod объявлен приватным.

AS1 позволяет сделать настоящую приватность:
Код:
this.setFooClass = function() {
   delete this.setFooClass;
   var Foo = function () {
      anyPrivateMethod.call(this);
   };
   var anyPrivateMethod = function () {
      trace("anyPrivateMethod called");
   };
   Foo.prototype.anyPrivateMethodCaller = function() {
      anyPrivateMethod();
   };
   _global.Foo = Foo;
};
this.setFooClass();
// TEST
this.foo_instance = new Foo();
this.onMouseUp = function () {
   this.foo_instance.anyPrivateMethodCaller()
}
- попробуй обратиться к методу anyPrivateMethod извне класса.

и еще раз. дело даже не в конкретике.
трюки противоречат идеологии AS2.
это правильно. но мне это не нравится %)
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 1 Декабрь 2005, 18:40:17 
еще пример:
есть статический метод класса, создающий экземпляры класса (из реального класса):
Код:
static function create(thisObject:MovieClip, name:String, depth:Number, initObject:Object) {
   var mc = thisObject.createEmptyMovieClip(name, depth);
   var t = GradientAndSafePalette;
   mc.__proto__ = t.prototype;
   for (var i in initObject) {
      mc[i] = initObject[i];
   }
   t.call(mc);
   return mc;
}
- то, что ты видишь, это трюк, по идее, запрещенный в AS2.
обращение в статических методах к this запрещено.
а иногда очень нужно.
обманываем. что идеологически неверно.
А в AS1 это честный прием.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 1 Декабрь 2005, 19:00:52 
И как итог:
Поскольку AS2 это не более чем надстройка над AS1,
то никаких новых runtime возможностей (за незначительными исключениями) она не дает.
Эта надстройка в основном запрещает что-то делать на этапе компиляции.
Следовательно,
AS2 - это урезанная версия AS1

т.е. по определению:
в AS1 я могу повторить всё, что сделано в AS2
в AS2 я не могу сделать всё, что сделано в AS1

- для меня это весомый аргумент.

да, идеология AS2 полезна и ни в коем случае не отрицаю ее пользу.
но не стоит на этом зацикливаться.

как я уже говорил, писать на AS2 и понимать идеологию AS2 - это разные вещи.
и понимают это с десяток человек в этой стране.
Я себя и не отношу к знатокам AS2, но глядя на то что творят в AS2,
мне кажется, что моя оценка количества понимающих слишком оптимистична.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 1 Декабрь 2005, 19:24:50 
Здорово, тебе удобней "делать" классы на as1 и обманывать систему.
А что насчёт производительности? (fps)
Если честно, именно это меня больше всего интересует. Есть какие соображения? :dandy:

_________________
можно на ТЫ.
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 1 Декабрь 2005, 19:43:44 
bE(o0L, AS 1.0 быстрее AS 2.0 :gent:

_________________
blog : flash / unity
_etc Муж.
новый человек
0
Сообщения: 18
Зарегистрирован: 29.11.05
Откуда: Moscow
Сообщение Добавлено: 1 Декабрь 2005, 20:07:55 

bE(o0L писал(а):
обманывать систему.


Ты невнимательно прочитал. Обманом это будет лишь в реализации на AS2.

_________________
«non progredi est regredi»
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 1 Декабрь 2005, 20:13:02 
- я не обманываю систему. я честно пишу в рамках идеологии AS1, которая совершенно спокойно допускает это.

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

тогда можно сравнивать на уровне задача -> решение
очевидно, что будут решения аналогичные по производительности
и будут решения в которых AS1 выигрывает у AS2.
а вот обратного не будет.
Король Муж.
участник
18
Сообщения: 1352
Зарегистрирован: 24.07.04
Сообщение Добавлено: 1 Декабрь 2005, 21:00:55 
выигрывает в любом случае голова) я могу совмещать ас1 и ас2 - допустим, мне намного удобнее писать классы в отдельных ас файлах и пэкэджах, что позволяет делать ас2 (хоть флеш и глючит иногда с их загрузкой) - но при этом я всегда создаю экземпляры при помощи того же __proto__ из ас1. в общем это дело вкуса. насчет идеологии я не могу ничего сказать - я далек от нее, я просто стараюсь делать как можно проще и удобнее для себя самого. самые интересные решения в любом случае находятся не на уровне организации приложения, а на уровне алгоритма его работы

_________________
Здравствуй, Олимпийский!
diflux Муж.
участник
8
Сообщения: 1051
Зарегистрирован: 10.07.02
Откуда: Moscow
Сообщение Добавлено: 1 Декабрь 2005, 21:29:40 
Мне тоже AS2 не нравится, потому, что все мои старые скрипты в нем не работают.
А в программировании я нифига не понимаю, поэтому переделать их не могу.
:laugh: :laugh: :laugh:
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 1 Декабрь 2005, 22:23:33 

Король писал(а):
я могу совмещать ас1 и ас2

- разумеется.
было бы глупо отказываться от удобства работы с правильно написанными AS2 классами.
я ровно так же поступаю.
но делать AS2 класс для кода, который не будет заюзан повторно,
по-моему лишняя трата времени.

возможно поэтому у меня на сайте AS2 классы можно по пальцам пересчитать.
(правда он лежит сейчас)
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 2 Декабрь 2005, 01:37:18 
nuran, cтарик это слова. я категорически не вижу разницы, мало того, проекты переписаные под as2 работают в разы быстрее.
Конечно, это не доказательство - можно предположить что на as1 они были просто криво писаны. Но вот уважаемый iv уже утверждает что разницы нет.

Опять же - выясняем, что повысить производительность (разве не это главная цель Нормального разработчика?) можно лишь засчёт своих Старых знаний as1.

Хотелось бы всётаки конкретики (не трюков!) где as1 выйгрывает as2 ? Повторюсь не удобнее вам, потому что вы as1 знаете лучше, а реально мощнее.

p.s.
_etc, внимательно, внимательно.

_________________
можно на ТЫ.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 03:58:39 

bE(o0L писал(а):
проекты переписаные под as2 работают в разы быстрее.

- ключевое слово здесь - "переписанные".
не думаю, что ты возражаешь против этого:

_iv писал(а):
в AS1 я могу повторить всё, что сделано в AS2
в AS2 я не могу сделать всё, что сделано в AS1



- я с удовольствием продемонстрирую пример по производительности,
но блин, щас просто не приходит в голову.
но как только, так сразу. обещаю. а примеры такие точно были.

bE(o0L писал(а):
Но вот уважаемый iv уже утверждает что разницы нет.

- здесь неправильное слово: "уже", ибо никогда обратного не утверждал.
утверждение сводится к "в некоторых случаях".
во всем остальном производительность идентична,
ибо можно добиться практически идентичного байткода при перегонке AS2 в AS1 (но не наоборот).


bE(o0L писал(а):
Хотелось бы всётаки конкретики (не трюков!) где as1 выйгрывает as2 ?


- если без трюков в понимании AS2, то скорее всего нигде.
собственно о возможности применения трюков для повышения производительности речь и идет.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 2 Декабрь 2005, 04:03:35 
_iv, :beer:


Цитата:
но как только, так сразу. обещаю. а примеры такие точно были.


ну хотяб помнишь, на чём эти примеры основывались? графика? математика? сервер/клиент? всё вместе?
:dandy:

_________________
можно на ТЫ.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 04:51:14 
не помню. даже зацепиться мозгу не за что. сорри.
как пульт от телика: вот тока что в руках держал, а найти не могу :)
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 08:13:55 
bE(o0L, я проводил эксперименты так что это не слова а факты.


_iv писал(а):
в AS1 я могу повторить всё, что сделано в AS2



Да ладно уж, всё ты не повторишь, но кое-что — да.

_________________
blog : flash / unity
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 2 Декабрь 2005, 11:27:41 
Вовторяемо обсолютно всё.
nuran, хотябы тот факт, что AS2 класс преврощаются в AS1, уже заставляет задуматься о том, что повторяемо обсолютно всё.
bE(o0L, производительность обсолютно не изменится при эдентичности кода. Почему? Потому что это одно и тоже.
diflux Муж.
участник
8
Сообщения: 1051
Зарегистрирован: 10.07.02
Откуда: Moscow
Сообщение Добавлено: 2 Декабрь 2005, 12:29:42 
Друзья, если вы двигаете свою точку зрения, выкладывайте примеры, чтобы закрепить ваши слова.

Цитата:
nuran, bE(o0L, я проводил эксперименты так что это не слова а факты.


Факты в студию. :beer:


Цитата:
_iv, но как только, так сразу. обещаю. а примеры такие точно были.


Примеры в студию. :beer:


Цитата:
nuran, Да ладно уж, всё ты не повторишь, но кое-что — да.


Так же, пример того, что нельзя повторить. :beer:

Становится интересно :)
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 2 Декабрь 2005, 14:51:37 

Цитата:
Становится интересно


ключевая фраза.

BlooDHounD, да вот и мне так кажется. Интересно знать, КАК изменить код в сторону увеличения производительности на as1.

Можно даже небольшой тест-драйв устроить, человек на as1 пишет нечто весьма загруженное, но по его мнению работающее быстрее, чем код с таким же результатом, писаный на as2. И тогда у "сомневающейся" общественности, появится шанс доказать самому себе либо обратное, либо утверждаемое, переписав код под as2

Результаты конечно же постить здесь :dandy:

_________________
можно на ТЫ.
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 16:07:20 

BlooDHounD писал(а):
Вовторяемо обсолютно всё.
nuran, хотябы тот факт, что AS2 класс преврощаются в AS1, уже заставляет задуматься о том, что повторяемо обсолютно всё.



Сможешь повторить байткод ( любой ) AS 2.0 используя синтаксис AS 1.0 ?
Давай поспорим, я тебе дам пример на AS 2.0 и ты его не повторишь на AS 1.0 ?

Ну что ?

_________________
blog : flash / unity
diflux Муж.
участник
8
Сообщения: 1051
Зарегистрирован: 10.07.02
Откуда: Moscow
Сообщение Добавлено: 2 Декабрь 2005, 16:52:23 
nuran,
Не предлагай, а выкладывай сразу :)
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 2 Декабрь 2005, 17:41:30 
nuran, галимые понты :cool: читай спецификации.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 2 Декабрь 2005, 17:58:09 
помоему речь шла о том, чтоб сделать as1 код и повторить его на as2

_________________
можно на ТЫ.
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 18:10:16 
bE(o0L, нет, речь шла о противоположном, AS 2.0 => AS 1.0

BlooDHounD, а от спора отказался, нет так нет :cool:

_________________
blog : flash / unity


Последний раз редактировалось nuran 2 Декабрь 2005, 18:12:44, всего редактировалось 1 раз.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 18:10:32 
начнем с того, что я в AS1 могу заюзать __bytecode__
кстати, код оптимизированный во фласме работает быстреее чем
AS1 и его можно втыкать в AS1 проекты с помощью __bytecode__
или __bytecode__ это AS-ноль? хехе.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 2 Декабрь 2005, 18:12:48 
nuran, нет, баттенька. Речь идёт о преимуществах as1 перед as2, о его возможностях и быстродействиях. Поэтому интересен код as1 который нельзя повторить на as2.
Cпорить об обратном - бред. ;)

_________________
можно на ТЫ.
Король Муж.
участник
18
Сообщения: 1352
Зарегистрирован: 24.07.04
Сообщение Добавлено: 2 Декабрь 2005, 18:31:14 
bE(o0L, нуран по-моему стоит на позиции, обратной той, которую ты только что озвучил - так что с его точки зрения как раз интересен код на ас2

_________________
Здравствуй, Олимпийский!
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 18:38:00 

bE(o0L писал(а):
Cпорить об обратном - бред.



а посмотри что пишет, мною уважаемый, BlooDHounD по-поводу этого :)


BlooDHounD писал(а):
nuran, галимые понты :cool: читай спецификации.




bE(o0L, все команды AS 1.0 входят в состав AS 2.0 , так что утверждать что на AS 2.0 нельзя что-то сделать из AS 1.0 :insane: :lamer: , ну или типа того :)

_________________
blog : flash / unity
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 19:39:38 

Цитата:
все команды AS 1.0 входят в состав AS 2.0


- неправда.
идеология AS2 не приемлет недокументированные фичи.
способы использования команд ограничены.

я приводил пример:
ты не можешь обратиться к this в статическом методе.
и такого добра валом.

но это явный вариант.
писать на AS2 вовсе не одно и то же что понимать и использовать идеологию AS2.
трюки в AS2 противоречат его идеологии.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 19:43:22 
пример имею узел xml и мне надо в нем знать ссылку на некий мувик:

AS1:
var node_xml = any_xml.FirstChild
node_xml.any_mc = _root.any_mc

AS2:
var node_xml:XMLNode = any_xml.FirstChild;
node_xml.any_mc = _root.any_mc;

- запрещено в AS2.
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 2 Декабрь 2005, 20:12:58 
var node_xml:XMLNode = any_xml.FirstChild;
node_xml["any_mc"] = _root.any_mc;
:wink:
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 20:36:10 

Дембицкий писал(а):
идеология AS2 не приемлет недокументированные фичи.



Ты что, хочешь сказать что идеология AS 1.0 приемлит недокументированные фичи ? :lamer: :lamer: :lamer:

_________________
blog : flash / unity
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 20:43:22 
всё объектно ориентированное программирование в AS1 - недокументированная фича.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 2 Декабрь 2005, 20:46:07 

BlooDHounD писал(а):
var node_xml:XMLNode = any_xml.FirstChild;
node_xml["any_mc"] = _root.any_mc;

- собственно я ожидал этого ответа. даже провоцировал. приведенный код к идеологии AS2 не имеет никакого отношения.
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 2 Декабрь 2005, 20:57:10 

_iv писал(а):
всё объектно ориентированное программирование в AS1 - недокументированная фича.



Ну да, согласен.

_iv, идеология и реальность — разные вещи. По идеологии ты не можешь юзать недокументированные функции, а без них тебе не сделать к примеру твои примеры с классами на AS 1.0 :gent:

_________________
blog : flash / unity
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 57 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100