![]() |
Модераторы: SoWa |
![]() ![]() ![]() |
|
AlDev |
|
||||||||||||||
Опытный идиотъ ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 10 Всего: 50 |
Изменения в ActionScript 3.0
Типы. В ActionScript 3.0 void - внутренний тип в отличии от class (который должен писаться с заглавной буквы). Тип Void как обьявление типа, возвращаемого функцией, был переименован в void. Константы, переменные, параметры функций и возвращаемые значения типа Object теперь не могут содержать значение undefined, но они могут содержать другие ActionScript 3.0 значения, включая null. Если вы присвоите объекту значение undefined, оно будет автоматически приведено к null. Новый тип *, определяемый как “no type”, используется для опреления констант, переменных, параметров функций или возвращаемых значений, которые могут содержать любое значение, включая undefined. Вы можете использовать * вместо любого другого определения типа, однако * не является фактическим типом:
Приведеный выше код эквивалентен такому варианту, если вы не используете определение типа:
Дабы избежать предупреждений компиллятора, указывайте тип *. Выражения вида a[i] или o[p] теперь имеют тип *, а не Object. Object больше не приводится автоматически к большинству других типов. Вы должны использовать приведение или оператор as для присвоения Object для Number, String, etc… Однако к Boolena Object приведоится автоматически. Псевдо-тип * автоматически приводится ко всем другим типам. Некоторые правила приведения типов изменились. В часности, преобразование null и undefined в String:
Оператор as теперь возвращает либо первоначальное значение, либо null. Конвертирование значения он не выполняет. Несколько случаев is изменились. В частности, (null is String), (null is Object), and (null is ClassDerivedFromObject) теперь false. Сравнение двух значений несовместимых типов теперь вызывает ошибку, за исключением случаев, когда тип null, интерфейс, Object или * (-strict). Если функция возвращает не void значение, в ней должно быть выражение return, возвращающее значение определенного типа. Теперь компилятор запрещает нам ассиметричные гетеры и сетеры. То есть тип значения, передаваемогог set, должен совпадать с типом, возвращаемым в get. Результат сложения, вычитания и умножения двух значений типа int или uint может не влезть в данные типы. В данном случае будет возвращен Number c числено правильным результатом, а не int/uint или округленное целое значение. int и uint теперь не наследуют от Number. Использование оператора delete для удаления свойства, определенного во время компилляции теперь будет ошибкой (-strict). Спецификация доступа. Больше нельзя описывать private или internal классы внутри package. Если у вас есть public класс, использующий вспомогательные классы, которым не требуется быть public, размещайте их описание после package:
Эта модель делает MyHelperClass видимым только внутри данного файла, а не для всего кода в package foo.bar. Модификатор доступа protected теперь instance-based, как в Java и C++, а не class-based. Экземпляр может вызывать protected методы самого себя и своих предков но не других экземплляров. Пример:
Идея заключаеться в том что субклассинг из UIComponent не должен давать вам права на protected методы унаследованные от UIComponent на другие классы которые наследуються от него. Другие изменения Вы получаете compile-time предупреждение, если ваш класс не имеет конструктора. Так-же вы получаете предупреждение, если в конструкторе вы не вызываете super(). Как и все другие предупреждения, эти могут быть отключены. Доступ к свойствам с использованием квадратных скобок (instance[”prop”]) или точки (instance.prop) теперь ведут себя одинаково. В подробностях, с использованием квадратных скобок вы видите все пространства имен, открытые для исполняемого кода; они используются для просмотра только public пространства имен. Flex Framework теперь не использует атрибута prototype. to теперь является зарезервированым словом, вы не можете использовать его как имя константы, переменной, или параметра функции. Новые классы для констант событий. Значения констант, которые раньше хранились в классах с именами, заканчивающимися словом “Type”, перенесены в классы с именами, не заканчивающимися на “Type” (то есть константы из EventType теперь находятся в Event . Прим. пер.). Оригинал: http://labs.macromedia.com/wiki/index.php/..._Beta_1_Changes Перевод: http://batsuev.com/wp/2006/02/04/actionscript-30-changes/ Alex S Batsuev ( aka AlDev) Заранее прошу извинить за некоторые неточности перевода. Это сообщение отредактировал(а) AlDev - 4.2.2006, 06:58 |
||||||||||||||
|
|||||||||||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | ActionScript 3 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |