摘要:本文主要向大家介绍了Flash基础入门之flash反射机制基础知识,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。
本文主要向大家介绍了Flash基础入门之flash反射机制基础知识,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。
flash.utils包中顶级函数
getDefinitionByName
完全限定类名的字符串 ----类名
getQualifiedClassName
对象------完全限定类名的字符串
getQualifiedSuperclassName
对象------ 基类的完全限定类名的字符串
1、 trace(getDefinitionByName("flash.display.Sprite")) 返回一个名称为Sprite的类名
sp = new getDefinitionByName("flash.display.Sprite") () 新建一个Sprite 实例
2、trace(getQualifiedClassName(sp) ) 返回sp的类的完全限定类名称:flash.display.Sprite
3、getQualifiedSuperclassName(sp) 返回sp的上一级基类的完全限定类名称:flash.display.DisplayObject
flash.system.ApplicationDomain //此应用程序域保存有导入的外部swf中所有的公共定义(类、命名空间、函数)
getDefinition(name:String):Object
从指定的应用程序域获取一个公共定义(类定义)。
hasDefinition(name:String):Boolean
检查指定的应用程序域之内是否存在一个公共定义。
1、loader.contentLoaderInfo.applicationDomain.getDefinition("Ball") 返回:导入的swf中的Ball的类定义
2、loader.contentLoaderInfo.applicationDomain.hasDefinition("Ball") 返回:导入的swf中是否有Ball的类定义
获取类信息
public function describeType(value:*):XML
生成一个 XML 对象来描述参数中指定的 ActionScript 对象, 这个方法使 ActionScript 实现了反射编程的概念.
如果参数 value 是某类的实例, 那么返回的 XML 对象包含了此类中所有的实例属性, 但是不会包含任何的静态属性.
这种情况下你可以通过检查标签 <type> 中的 isStatic 属性来判断他, 当参数为某类的实例时, 这个值为 false.
要获取类的静态属性, 可以通过传递类本身到参数 value, 这样返回的 XML 对象不仅包括了类的静态属性, 也包括所有的实例属性.
实例属性被包含在 <factory> 标签中使它们和静态属性区别开来. 在这种情况下, <type> 标签的 isStatic 属性为 true.
提示: 如果你只需要获取对象的继承结构而不需要 describeType() 提供的其他信息, 可以使用 getQualifiedClassName() 和 getQualifiedSuperclassName() 来替代
下表描述了 describeType() 生成的 XML 的标签和属性 (按运行代码察看)
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
另外, 由 describeType() 返回的类描述信息中只会含有所有可被访问的元素, 即所有非定义为 private 的元素.
解释了这么多, 我们来看看返回的 XML 格式
flash 的内置类 flash.display.Sprite :
trace(describeType(Sprite);
1. <type name="flash.display::Sprite" base="Class" isDynamic="true" isFinal="true" isStatic="true">
2. <extendsClass type="Class"/>
3. <extendsClass type="Object"/>
4. <accessor name="prototype" access="readonly" type="*" declaredBy="Class"/>
5. <factory type="flash.display::Sprite">
6. <extendsClass type="flash.display::DisplayObjectContainer"/>
7. <extendsClass type="flash.display::InteractiveObject"/>
8. <extendsClass type="flash.display::DisplayObject"/>
9. <extendsClass type="flash.events::EventDispatcher"/>
10. <extendsClass type="Object"/>
11. <implementsInterface type="flash.display::IBitmapDrawable"/>
12. <implementsInterface type="flash.events::IEventDispatcher"/>
13. <accessor name="hitArea" access="readwrite" type="flash.display::Sprite" declaredBy="flash.display::Sprite"/>
14. <method name="startDrag" declaredBy="flash.display::Sprite" returnType="void">
15. <parameter index="1" type="Boolean" optional="true"/>
16. <parameter index="2" type="flash.geom::Rectangle" optional="true"/>
17. </method>
18. <accessor name="buttonMode" access="readwrite" type="Boolean" declaredBy="flash.display::Sprite"/>
19. <accessor name="graphics" access="readonly" type="flash.display::Graphics" declaredBy="flash.display::Sprite"/>
20. <accessor name="soundTransform" access="readwrite" type="flash.media::SoundTransform" declaredBy="flash.display::Sprite"/>
21. <method name="stopDrag" declaredBy="flash.display::Sprite" returnType="void"/>
22. <accessor name="dropTarget" access="readonly" type="flash.display::DisplayObject" declaredBy="flash.display::Sprite"/>
23. <accessor name="useHandCursor" access="readwrite" type="Boolean" declaredBy="flash.display::Sprite"/>
24. <method name="getChildAt" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
25. <parameter index="1" type="int" optional="false"/>
26. </method>
27. <method name="addChild" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
28. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
29. </method>
30. <method name="swapChildren" declaredBy="flash.display::DisplayObjectContainer" returnType="void">
31. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
32. <parameter index="2" type="flash.display::DisplayObject" optional="false"/>
33. </method>
34. <method name="getChildByName" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
35. <parameter index="1" type="String" optional="false"/>
36. </method>
37. <method name="getObjectsUnderPoint" declaredBy="flash.display::DisplayObjectContainer" returnType="Array">
38. <parameter index="1" type="flash.geom::Point" optional="false"/>
39. </method>
40. <accessor name="textSnapshot" access="readonly" type="flash.text::TextSnapshot" declaredBy="flash.display::DisplayObjectContainer"/>
41. <method name="removeChildAt" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
42. <parameter index="1" type="int" optional="false"/>
43. </method>
44. <method name="getChildIndex" declaredBy="flash.display::DisplayObjectContainer" returnType="int">
45. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
46. </method>
47. <method name="areInaccessibleObjectsUnderPoint" declaredBy="flash.display::DisplayObjectContainer" returnType="Boolean">
48. <parameter index="1" type="flash.geom::Point" optional="false"/>
49. </method>
50. <accessor name="mouseChildren" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObjectContainer"/>
51. <method name="removeChild" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
52. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
53. </method>
54. <method name="setChildIndex" declaredBy="flash.display::DisplayObjectContainer" returnType="void">
55. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
56. <parameter index="2" type="int" optional="false"/>
57. </method>
58. <method name="contains" declaredBy="flash.display::DisplayObjectContainer" returnType="Boolean">
59. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
60. </method>
61. <method name="addChildAt" declaredBy="flash.display::DisplayObjectContainer" returnType="flash.display::DisplayObject">
62. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
63. <parameter index="2" type="int" optional="false"/>
64. </method>
65. <accessor name="numChildren" access="readonly" type="int" declaredBy="flash.display::DisplayObjectContainer"/>
66. <method name="swapChildrenAt" declaredBy="flash.display::DisplayObjectContainer" returnType="void">
67. <parameter index="1" type="int" optional="false"/>
68. <parameter index="2" type="int" optional="false"/>
69. </method>
70. <accessor name="tabChildren" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObjectContainer"/>
71. <accessor name="tabEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
72. <accessor name="doubleClickEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
73. <accessor name="contextMenu" access="readwrite" type="flash.ui::ContextMenu" declaredBy="flash.display::InteractiveObject"/>
74. <accessor name="accessibilityImplementation" access="readwrite" type="flash.accessibility::AccessibilityImplementation" declaredBy="flash.display::InteractiveObject">
75. <metadata name="Inspectable">
76. <arg key="environment" value="none"/>
77. </metadata>
78. </accessor>
79. <accessor name="mouseEnabled" access="readwrite" type="Boolean" declaredBy="flash.display::InteractiveObject"/>
80. <accessor name="focusRect" access="readwrite" type="Object" declaredBy="flash.display::InteractiveObject"/>
81. <accessor name="tabIndex" access="readwrite" type="int" declaredBy="flash.display::InteractiveObject"/>
82. <accessor name="mask" access="readwrite" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
83. <accessor name="scaleX" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
84. <accessor name="scaleY" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
85. <method name="getRect" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
86. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
87. </method>
88. <accessor name="mouseY" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
89. <accessor name="alpha" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
90. <accessor name="x" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
91. <accessor name="name" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
92. <accessor name="y" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
93. <accessor name="root" access="readonly" type="flash.display::DisplayObject" declaredBy="flash.display::DisplayObject"/>
94. <accessor name="width" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
95. <accessor name="stage" access="readonly" type="flash.display::Stage" declaredBy="flash.display::DisplayObject"/>
96. <accessor name="loaderInfo" access="readonly" type="flash.display::LoaderInfo" declaredBy="flash.display::DisplayObject"/>
97. <accessor name="transform" access="readwrite" type="flash.geom::Transform" declaredBy="flash.display::DisplayObject"/>
98. <accessor name="height" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
99. <method name="localToGlobal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
100. <parameter index="1" type="flash.geom::Point" optional="false"/>
101. </method>
102. <accessor name="filters" access="readwrite" type="Array" declaredBy="flash.display::DisplayObject"/>
103. <accessor name="blendMode" access="readwrite" type="String" declaredBy="flash.display::DisplayObject"/>
104. <accessor name="rotation" access="readwrite" type="Number" declaredBy="flash.display::DisplayObject"/>
105. <method name="hitTestObject" declaredBy="flash.display::DisplayObject" returnType="Boolean">
106. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
107. </method>
108. <accessor name="scale9Grid" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
109. <accessor name="accessibilityProperties" access="readwrite" type="flash.accessibility::AccessibilityProperties" declaredBy="flash.display::DisplayObject"/>
110. <accessor name="scrollRect" access="readwrite" type="flash.geom::Rectangle" declaredBy="flash.display::DisplayObject"/>
111. <accessor name="cacheAsBitmap" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
112. <method name="globalToLocal" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Point">
113. <parameter index="1" type="flash.geom::Point" optional="false"/>
114. </method>
115. <method name="getBounds" declaredBy="flash.display::DisplayObject" returnType="flash.geom::Rectangle">
116. <parameter index="1" type="flash.display::DisplayObject" optional="false"/>
117. </method>
118. <accessor name="opaqueBackground" access="readwrite" type="Object" declaredBy="flash.display::DisplayObject"/>
119. <accessor name="parent" access="readonly" type="flash.display::DisplayObjectContainer" declaredBy="flash.display::DisplayObject"/>
120. <method name="hitTestPoint" declaredBy="flash.display::DisplayObject" returnType="Boolean">
121. <parameter index="1" type="Number" optional="false"/>
122. <parameter index="2" type="Number" optional="false"/>
123. <parameter index="3" type="Boolean" optional="true"/>
124. </method>
125. <accessor name="visible" access="readwrite" type="Boolean" declaredBy="flash.display::DisplayObject"/>
126. <accessor name="mouseX" access="readonly" type="Number" declaredBy="flash.display::DisplayObject"/>
127. <method name="willTrigger" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
128. <parameter index="1" type="String" optional="false"/>
129. </method>
130. <method name="removeEventListener" declaredBy="flash.events::EventDispatcher" returnType="void">
131. <parameter index="1" type="String" optional="false"/>
132. <parameter index="2" type="Function" optional="false"/>
133. <parameter index="3" type="Boolean" optional="true"/>
134. </method>
135. <method name="toString" declaredBy="flash.events::EventDispatcher" returnType="String"/>
136. <method name="addEventListener" declaredBy="flash.events::EventDispatcher" returnType="void">
137. <parameter index="1" type="String" optional="false"/>
138. <parameter index="2" type="Function" optional="false"/>
139. <parameter index="3" type="Boolean" optional="true"/>
140. <parameter index="4" type="int" optional="true"/>
141. <parameter index="5" type="Boolean" optional="true"/>
142. </method>
143. <method name="dispatchEvent" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
144. <parameter index="1" type="flash.events::Event" optional="false"/>
145. </method>
146. <method name="hasEventListener" declaredBy="flash.events::EventDispatcher" returnType="Boolean">
147. <parameter index="1" type="String" optional="false"/>
148. </method>
149. </factory>
150. </type>
复制代码
返回:
根据帮助中的描述, 所有的实例属性都被嵌套在了 <factory> 标签里.
以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号