Московский физико-технический институт
Опубликован: 23.12.2005 | Доступ: свободный | Студентов: 2867 / 252 | Оценка: 4.61 / 4.44 | Длительность: 27:18:00
ISBN: 978-5-9556-0051-2
Лекция 6:

Классы

Что прячется в системных объектах

Теперь, конечно, трудно удержаться от того, чтобы снять флаги hidden со всех полей разнообразных системных объектов и вывести их при помощи for...in. Для начала проделаем это с объектом _global, а также посмотрим, какие методы наследуются во все объекты из Object.prototype. Вот код, который выводит в консоль все интересующие нас сведения.

trace("----------------------");
trace("|||||||||| Object.prototype |||||||||||");
trace("----------------------");
ASSetPropFlags(Object.prototype, null, 0, 1);
for (var name in Object.prototype) trace(name);
trace("----------------------");
trace("|||||||||| _global |||||||||||");
trace("----------------------");
ASSetPropFlags(_global, null, 0, 1);
for (var name in _global) trace(name);

В результате получаем вот что:

----------------------
|||||||||| Object.prototype |||||||||||
----------------------
toLocaleString
isPropertyEnumerable
isPrototypeOf
hasOwnProperty
toString
valueOf
addProperty
unwatch
watch
constructor
----------------------
|||||||||| _global |||||||||||
----------------------
CustomActions
MMSave
Cookie
System
Accessibility
Video
Stage
TextFormat
TextField
Button
Key
Mouse
Selection
XML
XMLNode
Sound
Math
Array
String
Date
Boolean
Number
o
clearInterval
setInterval
isFinite
isNaN
updateAfterEvent
trace
parseFloat
parseInt
unescape
escape
ASSetNative
ASSetPropFlags
LocalConnection
SharedObject
Microphone
Camera
NetStream
NetConnection
Color
AsBroadcaster
XMLSocket
LoadVars
MovieClip
Infinity
NaN
Function
Object
ASconstructor
ASnative

Мы видим, что те методы, которые мы можем найти в каждом объекте, действительно происходят из Object.prototype. Кроме того, мы видим там и несколько недокументированных функций. Огромное число как документированных, так и недокументированных объектов и функций мы находим в объекте _global. В частности, именно там мы видим ссылки на конструкторы самых важных классов, таких, как Number, String, Array, MovieClip и т.д. Даже функция ASSetPropFlags, с помощью которой мы обнаружили все это хозяйство, находится там. Мы не станем здесь подробно описывать поведение каждой их недокументированных функций, ведь эта книга ни в коей мере не является справочником. Тем, кто интересуется подробностями, порекомендуем ресурс http://web.archive.org/web/20040603171453/chattyfig.figleaf.com/flashcoderswiki/index.php?Undocumented+Features (это архивная копия документа с ныне закрытой wiki-конференции flashcoders-wiki). Также можно зайти на сайт FlashGuru http://www.flashguru.co.uk/tutorials.php. По этому адресу расположен список статей, в котором можно найти многие из обнаруженных нами недокументированных вещей. Также можно воспользоваться поиском на сайте Macromedia - многие классы и функции из недокументированных возможностей Flash MX превратились во вполне стандартные свойства системы Flash MX 2004, в описании которой вы сможете с ними познакомиться.