使用範例:
Step1.建立如下資料結構
測試程式中,將會建立hero.mxml 、TestInnerObject.as、TestObject.as三支程式來測試Object References View的使用功能。
程式碼如下:
//hero.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
applicationComplete="applicationComplete(event)">
<fx:Script>
<![CDATA[
import com.test.TestObject;
import mx.events.FlexEvent;
private var _t1:TestObject;
private var _t2:TestObject;
protected function applicationComplete(event:FlexEvent):void
{
_t1 = new TestObject();
_t1 = new TestObject();
_t2 = new TestObject();
_t2.name = "阿瓜";
}
]]>
</fx:Script>
</s:Application>
//TestInnerObject
package com.test
{
public class TestInnerObject
{
public function TestInnerObject()
{
}
public var money:int;
}
}
//TestObject.as
package com.test
{
public class TestObject
{
public function TestObject()
{
innerObject = new TestInnerObject();
innerObject.money = 100;
}
private var _name:String;
public function get name():String
{
return _name;
}
public function set name(value:String):void
{
if( _name != value)
{
_name = value;
}
}
private var _age:uint;
public function get age():uint
{
return _age;
}
public function set age(value:uint):void
{
if( _age != value)
{
_age = value;
}
}
private var _innerObject:TestInnerObject;
public function get innerObject():TestInnerObject
{
return _innerObject;
}
public function set innerObject(value:TestInnerObject):void
{
if( _innerObject != value)
{
_innerObject = value;
}
}
public function printName():void
{
trace(this.name);
}
}
}
Step2.點擊分析圖示,進入分析模式
Step3.選擇運行的程式,並製造快照(momory snapshot)
Step4.雙擊製造出來的快照
點擊後可以看到內存快照的窗口(memory snapshot view)
我們可以看到我們在Application中建立的TestInnerObject與TestObject。
- 實例數(Instances):指物件在應用程式中目前存在的數量。
而若是在活動對象窗口(Live Objects view)中,則有點不同,會有一項累積實例數(Cumulative Instances)。
- 累積實例數(Cumulative Instances):指物件在程式中被建立了幾次。
而在我們程式範例中,TestObject的確被new了三次,但只有兩個實體被變數參照起來,因此在實例數(instances)欄位中只有2個。
Step5.在memory Sanpshot View中雙擊TestObject以便打開Object References view觀察TestObject的被參照狀況
Click
可以看見Object References View
點擊窗口內的物件可以看到是誰參照到物件本身,以及物件內部屬性狀況等等
可以看見第二個物件是被hero的_t2所參照,而hero其實就是Application本身的實體,也就是topLevelApplication。
其餘操請參考官方文件:
沒有留言:
張貼留言