Даже в определениях идиотизма встречается идиотизм.
Цитата:
Идиотизм — устаревшее название идиомы
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиотизмы: Metadata у Stage
для понимания материала необходимы следующие знания:
Metadata
flash.utils.describeType
у себя в проектах, я довольно часто использую метаданные.
в AS есть зарезервированный метатэг [Exclude], который скрывает указанную сущность в инспекторе билдера, и иногда в подсказках к коду. тэг должен применяться к классу. множество примеров можно обнаружить во Flex-фрэймворке. но этот метатэг применим не только для флекса, но и к обычным pure-as3 проектам.
так же этот тэг используется в стандартных классах. как известно у класса Stage есть ряд переопределённых свойств, которые кидают исключение при попытки обратится к ним. так вот эти свойства перечислены в [Exclude]-тэгах. правда идиотизм в том, что все эти тэги объявлены у свойства frameRate:
Код:
<type name="flash.display::Stage" base="flash.display::DisplayObjectContainer" isDynamic="false" isFinal="false" isStatic="false">
<metadata name="Event">
<arg key="name" value="fullScreen"/>
<arg key="type" value="flash.events.FullScreenEvent"/>
</metadata>
<metadata name="Event">
<arg key="name" value="resize"/>
<arg key="type" value="flash.events.Event"/>
</metadata>
<metadata name="Event">
<arg key="name" value="mouseLeave"/>
<arg key="type" value="flash.events.Event"/>
</metadata>
<extendsClass type="flash.display::DisplayObjectContainer"/>
<extendsClass type="flash.display::InteractiveObject"/>
<extendsClass type="flash.display::DisplayObject"/>
<extendsClass type="flash.events::EventDispatcher"/>
<extendsClass type="Object"/>
<implementsInterface type="flash.display::IBitmapDrawable"/>
<implementsInterface type="flash.events::IEventDispatcher"/>
<accessor name="accessibilityImplementation" access="readwrite" type="flash.accessibility::AccessibilityImplementation" declaredBy="flash.display::InteractiveObject">
<metadata name="Inspectable">
<arg key="environment" value="none"/>
</metadata>
</accessor>
<accessor name="mask" access="readwrite" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
<accessor name="fullScreenHeight" access="readonly" type="uint" declaredBy="flash.display::Stage"/>
<accessor name="rotationY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="colorCorrectionSupport" access="readonly" type="String" declaredBy="flash.display::Stage"/>
<accessor name="focusRect" access="readwrite" type="Object" declaredBy="flash.display::InteractiveObject"/>
<accessor name="scaleZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="transform" access="readwrite" type="flash.geom::Transform" declaredBy="flash.display::DisplayObject"/>
<method name="setChildIndex" declaredBy="flash.display::Stage" returnType="void">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
<parameter index="2" type="int" optional="false"/>
</method>
<method name="addChild" declaredBy="flash.display::Stage" returnType="flash.display::DisplayObject">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<accessor name="height" access="readwrite" type="Number" declaredBy="flash.display::Stage"/>
<accessor name="contextMenu" access="readwrite" type="flash.ui::ContextMenu" declaredBy="flash.display::InteractiveObject"/>
<accessor name="scrollRect" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotation" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="accessibilityProperties" access="readwrite" type="flash.accessibility::AccessibilityProperties" declaredBy="flash.display::DisplayObject"/>
<accessor name="tabIndex" access="readwrite" type="int" declaredBy="flash.display::InteractiveObject"/>
<accessor name="mouseEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
<accessor name="alpha" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotationZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="frameRate" access="readwrite" type="Number" declaredBy="flash.display::Stage">
<metadata name="Exclude">
<arg key="name" value="y"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="x"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="visible"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="transform"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="tabIndex"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="tabEnabled"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="scrollRect"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="scaleY"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="scaleX"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="scale9Grid"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="rotation"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="opaqueBackground"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="name"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="mouseEnabled"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="mask"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="loaderInfo"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="focusRect"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="filters"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="contextMenu"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="cacheAsBitmap"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="blendMode"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="alpha"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="accessibilityProperties"/>
<arg key="kind" value="property"/>
</metadata>
<metadata name="Exclude">
<arg key="name" value="accessibilityImplementation"/>
<arg key="kind" value="property"/>
</metadata>
</accessor>
<accessor name="x" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="stageFocusRect" access="readwrite" type="Boolean" declaredBy="flash.display::Stage"/>
<accessor name="y" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="isFocusInaccessible" declaredBy="flash.display::Stage" returnType="Boolean"/>
<accessor name="tabEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
<accessor name="opaqueBackground" access="readwrite" type="Object" declaredBy="flash.display::DisplayObject"/>
<accessor name="stageHeight" access="readwrite" type="int" declaredBy="flash.display::Stage"/>
<accessor name="cacheAsBitmap" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
<accessor name="showDefaultContextMenu" access="readwrite" type="Boolean" declaredBy="flash.display::Stage"/>
<accessor name="z" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="scaleX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="visible" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
<accessor name="fullScreenWidth" access="readonly" type="uint" declaredBy="flash.display::Stage"/>
<accessor name="colorCorrection" access="readwrite" type="String" declaredBy="flash.display::Stage"/>
<accessor name="scaleY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="wmodeGPU" access="readonly" type="Boolean" declaredBy="flash.display::Stage"/>
<accessor name="focus" access="readwrite" type="flash.display::InteractiveObject" declaredBy="flash.display::Stage"/>
<accessor name="mouseChildren" access="readwrite" type="Boolean" declaredBy="flash.display::Stage"/>
<method name="dispatchEvent" declaredBy="flash.display::Stage" returnType="Boolean">
<parameter index="1" type="flash.events::Event" optional="false"/>
</method>
<method name="willTrigger" declaredBy="flash.display::Stage" returnType="Boolean">
<parameter index="1" type="String" optional="false"/>
</method>
<method name="hasEventListener" declaredBy="flash.display::Stage" returnType="Boolean">
<parameter index="1" type="String" optional="false"/>
</method>
<method name="swapChildrenAt" declaredBy="flash.display::Stage" returnType="void">
<parameter index="1" type="int" optional="false"/>
<parameter index="2" type="int" optional="false"/>
</method>
<accessor name="scaleMode" access="readwrite" type="String" declaredBy="flash.display::Stage"/>
<method name="addEventListener" declaredBy="flash.display::Stage" returnType="void">
<parameter index="1" type="String" optional="false"/>
<parameter index="2" type="Function" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
<parameter index="4" type="int" optional="true"/>
<parameter index="5" type="Boolean" optional="true"/>
</method>
<method name="invalidate" declaredBy="flash.display::Stage" returnType="void"/>
<accessor name="align" access="readwrite" type="String" declaredBy="flash.display::Stage"/>
<accessor name="width" access="readwrite" type="Number" declaredBy="flash.display::Stage"/>
<accessor name="displayState" access="readwrite" type="String" declaredBy="flash.display::Stage"/>
<method name="removeChildAt" declaredBy="flash.display::Stage" returnType="flash.display::DisplayObject">
<parameter index="1" type="int" optional="false"/>
</method>
<method name="addChildAt" declaredBy="flash.display::Stage" returnType="flash.display::DisplayObject">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
<parameter index="2" type="int" optional="false"/>
</method>
<accessor name="stageWidth" access="readwrite" type="int" declaredBy="flash.display::Stage"/>
<accessor name="numChildren" access="readonly" type="int" declaredBy="flash.display::Stage"/>
<accessor name="name" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
<accessor name="blendMode" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
<accessor name="tabChildren" access="readwrite" type="Boolean" declaredBy="flash.display::Stage"/>
<accessor name="filters" access="readwrite" type="Array" declaredBy="flash.display::DisplayObject"/>
<accessor name="fullScreenSourceRect" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::Stage"/>
<accessor name="textSnapshot" access="readonly" type="flash.text::TextSnapshot" declaredBy="flash.display::Stage"/>
<accessor name="scale9Grid" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotationX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="quality" access="readwrite" type="String" declaredBy="flash.display::Stage"/>
<method name="getChildByName" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
<parameter index="1" type="String" optional="false"/>
</method>
<method name="getChildIndex" declaredBy="flash.display::DisplayObjectContainer" returnType="int">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<method name="getChildAt" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
<parameter index="1" type="int" optional="false"/>
</method>
<method name="removeChild" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<method name="areInaccessibleObjectsUnderPoint" declaredBy="flash.display::DisplayObjectContainer" returnType="Boolean">
<parameter index="1" type="flash.geom::Point" optional="false"/>
</method>
<method name="swapChildren" declaredBy="flash.display::DisplayObjectContainer" returnType="void">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
<parameter index="2" type="flash.display::DisplayObject" optional="false"/>
</method>
<method name="contains" declaredBy="flash.display::DisplayObjectContainer" returnType="Boolean">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<method name="getObjectsUnderPoint" declaredBy="flash.display::DisplayObjectContainer" returnType="Array">
<parameter index="1" type="flash.geom::Point" optional="false"/>
</method>
<accessor name="accessibilityImplementation" access="readwrite" type="flash.accessibility::AccessibilityImplementation" declaredBy="flash.display::InteractiveObject">
<metadata name="Inspectable">
<arg key="environment" value="none"/>
</metadata>
</accessor>
<accessor name="focusRect" access="readwrite" type="Object" declaredBy="flash.display::InteractiveObject"/>
<accessor name="doubleClickEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
<accessor name="contextMenu" access="readwrite" type="flash.ui::ContextMenu" declaredBy="flash.display::InteractiveObject"/>
<accessor name="tabEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
<accessor name="mouseEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
<accessor name="tabIndex" access="readwrite" type="int" declaredBy="flash.display::InteractiveObject"/>
<accessor name="stage" access="readonly" type="flash.display::Stage" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotationY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="scaleZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="accessibilityProperties" access="readwrite" type="flash.accessibility::AccessibilityProperties" declaredBy="flash.display::DisplayObject"/>
<accessor name="scrollRect" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotationZ" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="alpha" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="getBounds" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<accessor name="x" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="blendShader" access="writeonly" type="flash.display::Shader" declaredBy="flash.display::DisplayObject"/>
<accessor name="opaqueBackground" access="readwrite" type="Object" declaredBy="flash.display::DisplayObject"/>
<accessor name="y" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="cacheAsBitmap" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
<accessor name="z" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="local3DToGlobal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
<parameter index="1" type="flash.geom::Vector3D" optional="false"/>
</method>
<accessor name="visible" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
<accessor name="scaleX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="globalToLocal3D" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Vector3D">
<parameter index="1" type="flash.geom::Point" optional="false"/>
</method>
<accessor name="mouseX" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="hitTestPoint" declaredBy="flash.display::DisplayObject" returnType="Boolean">
<parameter index="1" type="Number" optional="false"/>
<parameter index="2" type="Number" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
</method>
<accessor name="scaleY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="mouseY" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="parent" access="readonly" type="flash.display::DisplayObjectContainer" declaredBy="flash.display::DisplayObject"/>
<accessor name="mask" access="readwrite" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
<method name="getRect" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<accessor name="rotation" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<accessor name="transform" access="readwrite" type="flash.geom::Transform" declaredBy="flash.display::DisplayObject"/>
<method name="localToGlobal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
<parameter index="1" type="flash.geom::Point" optional="false"/>
</method>
<method name="globalToLocal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
<parameter index="1" type="flash.geom::Point" optional="false"/>
</method>
<accessor name="name" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
<accessor name="blendMode" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
<accessor name="root" access="readonly" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
<accessor name="filters" access="readwrite" type="Array" declaredBy="flash.display::DisplayObject"/>
<accessor name="loaderInfo" access="readonly" type="flash.display::LoaderInfo" declaredBy="flash.display::DisplayObject"/>
<accessor name="scale9Grid" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
<accessor name="rotationX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
<method name="hitTestObject" declaredBy="flash.display::DisplayObject" returnType="Boolean">
<parameter index="1" type="flash.display::DisplayObject" optional="false"/>
</method>
<method name="toString" declaredBy="flash.events::EventDispatcher" returnType="String"/>
<method name="removeEventListener" declaredBy="flash.events::EventDispatcher" returnType="void">
<parameter index="1" type="String" optional="false"/>
<parameter index="2" type="Function" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
</method>
</type>
Всего комментариев 0
Комментарии
Последние записи от BlooDHounD
- Обновление blooddy_crypto.swc до версии 0.5.1 (31.03.2016)
- Кто не успел - тот опоздал (19.04.2011)
- Обновление blooddy_crypto.swc до версии 0.3.1 (29.11.2010)
- blooddy_crypto.swc теперь умеет JSON (13.10.2010)
- Загадочный CommaExpression (06.09.2010)












