Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Битва гигантов: AVM1 vs. AVM2. Спешите видеть! Только у нас! (http://www.flasher.ru/forum/showthread.php?t=113128)

riden 02.07.2008 23:32

Моего примера вполне достаточно. Думаю и так все понятно. Если вам надо, сами и переписывайте свой код.

etc 02.07.2008 23:39

Цитата:

Сообщение от riden (Сообщение 749652)
Моего примера вполне достаточно. Думаю и так все понятно. Если вам надо, сами и переписывайте свой код.

А пример, между прочим, был примитивный. Ну на нет и суда нет, я не заставляю.

chingachgoog 03.07.2008 00:35

Цитата:

Сообщение от iNils (Сообщение 749638)
Ты не верно истолковываешь что такое объект активации. Object и объект активации это совсем разные вещи.
...А ты знаешь, что любой объект наследуется от Object

iNils, а где я говорил, что объект активации принадлежит к Object? Что-то я совсем не пойму этот твой пост.

В посте 431, вроде четко обозначили область дискуссии:

Цитата:

Сообщение от iNils
Ну давай. Смотрим пост 410, а именно его часть
Цитата:

Сообщение от chingachgoog
А this указывает на объект активации только в том случае, если функция вложена (тогда this из вложенной функции указывает на объект активации функции-оболочки)

...Особенно интересен пункт 5. Функция вложена, this есть и должен указывать на объект активации, а он показывает undefined ...То есть, свойства объекта активации есть, а самого объекта нет! Это и доказывает, что this не ссылается на объект активации, о чем было заявлено в посте 410.

Я показал, что ты ошибочно считал, будто this внутренней функции НЕ ссылается на объект активации внешней функции? Вроде показал - у тебя теперь у самого в коде правильно стоит trace (this) во вложенной функции, который исправно и показывает [type Object].

А уж то, являеется ли объект активации вообще объектом (в смысле Object) и чем вообще является - это уже другая интересная тема. По крайней мере мне интересно.

NB!
Интересно, только так ненавистный многими Гурский занимался этой проблемой или нет?
Цитата:

Сообщение от Гурский
В ActionScript при вызове функции создается особая структура, называемая объектом активации. Его назначение сводится к управлению выполнением статичного кода функции. В частности, в нем хранится точка возврата функции, чем решается проблема рекурсии, характерная для правила копирования. При завершении выполнения кода объект активации разрушается. Последующий вызов функции будет сопровождаться созданием нового, никак не связанного с первым объекта активации. Во время выполнения сценария может быть создано любое число объектов активации, причем это никак не повлияет на их шаблон — определение функции.
Если одна функция вызывает другую, то создается новый объект активации и начинается выполнение соответствующего ему сегмента кода.
...Объект активации — это просто удобный инструмент выполнения функции, создаваемый Flash плейером.
Объект активации и код функции вместе образуют структуру, называемую активацией функции.
В общем случае для конструирования конкретной активации функции на основании ее определения нужно скопировать в отдельную область памяти шаблон подпрограммы. Однако дублировать его целиком нерационально, поэтому он делится на две части. Первая, статическая часть, называемая сегментом кода, хранит выполняемый код. Она неизменна для каждой активации, и поэтому в выполняющейся
программе всегда присутствует только один сегмент кода. Вторая, динамическая часть, хранит список переданных функции параметров, локальные переменные, точку возврата и разного рода служебные данные, такие как, например, номер строки, которая должна быть выполнена в сегменте кода следующей, или значение указателя this. Именно ее подразумевают, когда говорят об объекте активации. Его компонентом в ActionScript является уже знакомый нам объект arguments.
Таким образом, функция на этапе выполнения представляет собой два разных по своей сущности элемента. Определение действий ...статично и ничем не отличается от остального кода. Объект активации, наоборот, индивидуален для каждого вызова функции и представляет собой запись, хранящую служебную информацию.

Поэтому, iNils, ты зря горячишься:
Цитата:

Сообщение от iNils (Сообщение 749638)
Раз ты создал собственную область понимания, то разговор закончен.

Давай создадим общую область понимания :)
Наверное в спецификации под "объектом активации" понимали объект активации в целом, как структуру ФП. У нас же "z" - очевидно только часть этого целого объекта активации, про который Гурский и говорит, что ее (часть) и подразумевают под "объектом активации".

riden, __etc же сказал, что для него ЛЮБОЙ прототипный язык ООП - это "псевдо"-ООП. В частности потомучто там нет зарезервированных слов приват, интерфейс и (самое страшное!) даже класс :) Ну вот такая снобистская позиция программиста ООП на классах. Имеет полное право. Классификация - вещь переменчивая. Сегодня прототипные языки относят к ООП, завтра - не относят, послезавтра еще что-нибудь...

Яски 03.07.2008 03:22

Мнение etc к классификации в целом отношения не имеет.

librio 03.07.2008 10:04

Adobe не будет развивать AS1/2.
Более того, никто не станет делать Papervision, Away3D, Box2d, APE и прочее под AS1/2.
Подавляющее большинство новых разработок делают и будут делать на AS3.
---
Плохо это для кого-то или хорошо, но AS1/2 рано или поздно вымрет. Не потому что плох, а просто его время прошло.
Ошибка это Adobe или нет - все равно, просто все равно. А кому не все равно - будет спорить до бесконечности. Причем в пустую.

chingachgoog 03.07.2008 15:27

Цитата:

Сообщение от Яски (Сообщение 749684)
Мнение etc к классификации в целом отношения не имеет.

Но спорит-то он исходя из своей классификации :) Для конценсусса сначала надо прийти к одной классификации, а потом уже обсуждать вопрос.
Вот, кстати, улыбнуло:
http://flasher.ru/forum/showpost.php...42&postcount=8
Цитата:

Сообщение от __etc
Цитата:

Сообщение от CrazyFlasher
AS2 - это псевдо ООП, т.к. на самом деле (как выше уже писали) после компиляции мы получаем AS1

Почти AS1. И вовсе не псевдо. Что там выходит после компиляции вообще совершенно не должно волновать.


etc 03.07.2008 16:30

Цитата:

Сообщение от chingachgoog (Сообщение 749785)
Вот, кстати, улыбнуло:
http://flasher.ru/forum/showpost.php...42&postcount=8

И что? AS1 от этого не станет истинно объектно-ориентированным. А AS2 — неоднозначная вещь. До компиляции, в момент компиляции — это ООП-язык. После компиляции от него и следа не остается.

chingachgoog 05.07.2008 20:09

Цитата:

Сообщение от __etc (Сообщение 749815)
И что? AS1 от этого не станет истинно объектно-ориентированным.

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

Цитата:

Сообщение от __etc (Сообщение 749815)
А AS2 — неоднозначная вещь. До компиляции, в момент компиляции — это ООП-язык. После компиляции от него и следа не остается.

Я и говорю - улыбнуло и продолжает улыбать:
Цитата:

Сообщение от __etc (Сообщение 749815)
Что там выходит после компиляции вообще совершенно не должно волновать.

:)

Сайлас 05.07.2008 20:48

Слежу за спором примерно с таким же интересом, как можно следить за спором о дискуссии о существовании бога или о том, что было до Большого Взрыва - по крайней мере смысловую нагрузку он такую же несет.
Но
Цитата:

Сообщение от chingachgoog (Сообщение 750282)
Но вы должны в таком случае показывать собеседнику, что пользуетесь другими точками отсчета.

что-то вдруг улыбнуло и развело на оффтоп :) Пользуйтесь тогда уж совсем привычной терминологией для __etc, etc "пользуйтесь иным timezero" :)

etc 05.07.2008 23:37

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


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

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