套件 | mx.core |
介面 | public interface IFlexDisplayObject extends IBitmapDrawable , IEventDispatcher |
實作者 | BitmapAsset, ButtonAsset, DefaultDragImage, MovieClipAsset, MovieClipLoaderAsset, ProgrammaticSkin, SpriteAsset, SystemManager, TextFieldAsset, UIComponent |
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
屬性 | 定義自 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
此顯示物件的目前輔助功能選項。 | IFlexDisplayObject | ||
alpha : Number
指出所指定物件的 Alpha 透明度值。 | IFlexDisplayObject | ||
blendMode : String
來自 BlendMode 類別的值,會指定要使用何種混合模式。 | IFlexDisplayObject | ||
cacheAsBitmap : Boolean
如果設定為 true,Flash 執行階段會快取顯示物件的內部點陣圖表示法。 | IFlexDisplayObject | ||
filters : Array
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。 | IFlexDisplayObject | ||
height : Number
會指出顯示物件的高度,以像素為單位。 | IFlexDisplayObject | ||
loaderInfo : LoaderInfo [唯讀]
會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。 | IFlexDisplayObject | ||
mask : DisplayObject
呼叫之顯示物件會以指定的 mask 物件遮蓋。 | IFlexDisplayObject | ||
measuredHeight : Number [唯讀]
The measured height of this object. | IFlexDisplayObject | ||
measuredWidth : Number [唯讀]
The measured width of this object. | IFlexDisplayObject | ||
mouseX : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 x 座標,以像素為單位。 | IFlexDisplayObject | ||
mouseY : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 y 座標,以像素為單位。 | IFlexDisplayObject | ||
name : String
指出 DisplayObject 的實體名稱。 | IFlexDisplayObject | ||
opaqueBackground : Object
會指定顯示物件是否不透明,並具有特定背景顏色。 | IFlexDisplayObject | ||
parent : DisplayObjectContainer [唯讀]
指出包含此顯示物件的 DisplayObjectContainer 物件。 | IFlexDisplayObject | ||
root : DisplayObject [唯讀]
對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。 | IFlexDisplayObject | ||
rotation : Number
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。 | IFlexDisplayObject | ||
scale9Grid : Rectangle
目前產生效用的縮放格線。 | IFlexDisplayObject | ||
scaleX : Number
指出從註冊點套用的物件水平縮放 (百分比)。 | IFlexDisplayObject | ||
scaleY : Number
指出從物件註冊點套用的物件垂直縮放 (百分比)。 | IFlexDisplayObject | ||
scrollRect : Rectangle
顯示物件的捲動矩形範圍。 | IFlexDisplayObject | ||
stage : Stage [唯讀]
顯示物件的「舞台」。 | IFlexDisplayObject | ||
transform : flash.geom:Transform
這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。 | IFlexDisplayObject | ||
visible : Boolean
不管是否看得見顯示物件。 | IFlexDisplayObject | ||
width : Number
會指出顯示物件的寬度,以像素為單位。 | IFlexDisplayObject | ||
x : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。 | IFlexDisplayObject | ||
y : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。 | IFlexDisplayObject |
方法 | 定義自 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | IEventDispatcher | ||
會將事件傳送到事件流程。 | IEventDispatcher | ||
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。 | IFlexDisplayObject | ||
根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。 | IFlexDisplayObject | ||
將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。 | IFlexDisplayObject | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | IEventDispatcher | ||
評估顯示物件的範圍框,看它是否與 obj 顯示物件的範圍框重疊或相交。 | IFlexDisplayObject | ||
評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。 | IFlexDisplayObject | ||
將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。 | IFlexDisplayObject | ||
Moves this object to the specified x and y coordinates. | IFlexDisplayObject | ||
會從 EventDispatcher 物件移除偵聽程式。 | IEventDispatcher | ||
Sets the actual size of this object. | IFlexDisplayObject | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | IEventDispatcher |
accessibilityProperties | 屬性 |
accessibilityProperties:AccessibilityProperties
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
此顯示物件的目前輔助功能選項。 如果您要修改 accessibilityProperties
屬性或 accessibilityProperties
中的任何欄位,必須呼叫 Accessibility.updateProperties()
方法,才能使變更生效。
注意:對於在 Flash 編寫環境中建立的物件而言,accessibilityProperties
的值會預先填入您在「輔助功能」面板中輸入與該物件相關的任何資訊。
實作
public function get accessibilityProperties():AccessibilityProperties
public function set accessibilityProperties(value:AccessibilityProperties):void
alpha | 屬性 |
blendMode | 屬性 |
blendMode:String
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
來自 BlendMode 類別的值,會指定要使用何種混合模式。 您可以使用兩種方式從內部繪製點陣圖。 如果您啟用了混合模式或外部剪裁遮色片,則將填滿點陣圖的方形加入至向量顯示即會繪製出點陣圖。 如果您嘗試將此屬性設為無效值,Flash 執行階段將此值設成 BlendMode.NORMAL
。
blendMode
屬性會影響顯示物件的每個像素。每一個像素都是由三原色 (紅、綠、藍) 所構成,而每一個原色都具有介於 0x00 和 0xFF 之間的值。 Flash Player 或 Adobe AIR 會將影片片段中像素的每一個原色拿來和背景中像素的相對應顏色做比較。例如,當 blendMode
設定為 BlendMode.LIGHTEN
時,Flash Player 或 Adobe AIR 會比較顯示物件的紅色值與背景的紅色值,然後使用兩個值中較明亮者做為顏色顯示的紅色組件值。
下表將說明 blendMode
設定。 BlendMode 類別會定義您可以使用的字串值。 下表中的圖例說明了套用到圓形顯示物件 (2) 的 blendMode
值,此圓形顯示物件疊在另一個顯示物件 (1) 上。
BlendMode Constant | 圖例 | 說明 |
---|---|---|
BlendMode.NORMAL | 顯示物件出現在背景前面。 顯示物件的像素值會覆寫背景的像素值。 只要顯示物件是透明的,就可以看見背景。 | |
BlendMode.LAYER | 強制建立顯示物件的透明度群組。 這表示顯示物件在進行後續處理前,已預先於暫存緩衝區中組成。 如果顯示物件使用點陣圖快取來預先快取處理,或者如果顯示物件是顯示物件容器 (其中包含帶有 blendMode 設定,而不是 BlendMode.NORMAL 設定的子物件),這項作業就會自動完成。在 GPU 顯示下不支援。
| |
BlendMode.MULTIPLY | 將顯示物件基本顏色的值乘以背景顏色的值,然後除以 0xFF 以進行一般化,得到比較暗的顏色。 這個設定通常用於陰影和深度效果。
例如,如果顯示物件中某個像素的某個基本顏色 (例如紅色) 以及背景像素的對應顏色都具有 0x88 的值,相乘的結果就是 0x4840。 除以 0xFF 則會得到該基本顏色 0x48 的值,這是比顯示物件或背景的顏色都還要暗的顏色。 | |
BlendMode.SCREEN | 將顯示物件的互補色 (反色) 乘以背景的互補色,便會產生漂白特效。 這個設定通常用於反白效果,或用於移除顯示物件的黑暗區域。 | |
BlendMode.LIGHTEN | 在顯示物件基本顏色和背景顏色中選取比較淡的顏色 (其值較大的顏色)。 此設定常用於疊加類型。
例如,如果顯示物件有一個 RGB 值是 0xFFCC33 的像素,且背景像素的 RGB 值為 0xDDF800,那麼顯示的像素的 RGB 值就是 0xFFF833 (因為 0xFF > 0xDD,0xCC < 0xF8,而 0x33 > 0x00 = 33)。在 GPU 顯示下不支援。 | |
BlendMode.DARKEN | 在顯示物件基本顏色和背景顏色中選取比較暗的顏色 (其值較小的顏色)。 此設定常用於疊加類型。
例如,如果顯示物件有一個 RGB 值是 0xFFCC33 的像素,且背景像素的 RGB 值為 0xDDF800,那麼顯示的像素的 RGB 值就是 0xDDCC00 (因為 0xFF > 0xDD,0xCC < 0xF8,而 0x33 > 0x00 = 33)。在 GPU 顯示下不支援。 | |
BlendMode.DIFFERENCE | 比較顯示物件基本顏色和背景顏色,然後將兩者中比較淡的顏色值減去比較暗的顏色值。 此設定常用於較鮮明的顏色。
例如,如果顯示物件有一個 RGB 值是 0xFFCC33 的像素,且背景像素的 RGB 值為 0xDDF800,那麼顯示的像素的 RGB 值就是 0x222C33 (因為 0xFF - 0xDD = 0x22,0xF8 - 0xCC = 0x2C,而 0x33 - 0x00 = 0x33)。 | |
BlendMode.ADD | 將顯示物件基本顏色的值加上背景顏色的值,最大只能套用 0xFF。 這個設定通常用於讓兩個物件之間變亮的溶解效果更加鮮活。
例如,如果顯示物件有一個 RGB 值是 0xAAA633 的像素,且背景像素的 RGB 值為 0xDD2200,那麼顯示的像素的 RGB 值就是 0xFFC833 (因為 0xAA + 0xDD > 0xFF,0xA6 + 0x22 = 0xC8,而 0x33 + 0x00 = 0x33)。 | |
BlendMode.SUBTRACT | 從背景顏色的值減去顯示物件基本顏色的值,最小只能套用 0。 這個設定通常用於讓兩個物件之間變暗的溶解效果更加鮮活。
例如,如果顯示物件有一個 RGB 值是 0xAA2233 的像素,且背景像素的 RGB 值為 0xDDA600,那麼顯示的像素的 RGB 值就是 0x338400 (因為 0xDD - 0xAA = 0x33,0xA6 - 0x22 = 0x84,而 0x00 - 0x33 < 0x00)。 | |
BlendMode.INVERT | 反轉背景。 | |
BlendMode.ALPHA | 將顯示物件中每個像素的 Alpha 值套用到背景。 您需要將父輩顯示物件的 blendMode 設定設為 BlendMode.LAYER 。 例如,在圖例中,父輩顯示物件是白色的背景,其設定為 blendMode = BlendMode.LAYER 。在 GPU 顯示下不支援。 | |
BlendMode.ERASE | 根據顯示物件的 Alpha 值擦除背景。 您需要將父輩顯示物件的 blendMode 設為 BlendMode.LAYER 。 例如,在圖例中,父輩顯示物件是白色的背景,其設定為 blendMode = BlendMode.LAYER 。在 GPU 顯示下不支援。 | |
BlendMode.OVERLAY | 根據背景的暗度調整每個像素的顏色。 如果背景比 50% 灰階還要亮,顯示物件和背景顏色會被遮蔽,結果產生較明亮的顏色。 如果背景比 50% 灰階還要暗,顏色會相乘,得到比較暗的顏色。 此設定常用於陰影效果。在 GPU 顯示下不支援。 | |
BlendMode.HARDLIGHT | 根據顯示物件的暗度調整每個像素的顏色。 如果顯示物件比 50% 灰階還要亮,顯示物件和背景顏色會被遮蔽,結果產生較明亮的顏色。 如果顯示物件比 50% 灰階還要暗,顏色會相乘,結果產生比較暗的顏色。 此設定常用於陰影效果。在 GPU 顯示下不支援。 | |
BlendMode.SHADER | 不適用 | 使用自訂著色器程序來調整色彩。 使用的著色器會指定為指派給 blendShader 屬性的 Shader 實體。 將顯示物件的 blendShader 屬性設定為 Shader 實體會自動將顯示物件的 blendMode 屬性設為 BlendMode.SHADER 。在沒有先設定 blendShader 屬性的情況下,如果將 blendMode 屬性設為 BlendMode.SHADER ,則 blendMode 屬性會設為 BlendMode.NORMAL 。在 GPU 顯示下不支援。 |
實作
public function get blendMode():String
public function set blendMode(value:String):void
cacheAsBitmap | 屬性 |
cacheAsBitmap:Boolean
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
如果設定為 true
,Flash 執行階段會快取顯示物件的內部點陣圖表示法。這種快取可以增加含有複雜向量內容之顯示物件的執行效能。
已進行點陣圖快取之顯示物件中的所有向量資料都將繪製成點陣圖,而非主要顯示。 如果 cacheAsBitmapMatrix
為 null 或者不受支援,則點陣圖會複製到主要顯示畫面中變成未延伸、不旋轉的像素並貼齊最近的像素邊緣。像素和父物件是 1 比 1 對應。 如果變更點陣圖的邊界,會重新建立點陣圖而非延伸點陣圖。
如果 cacheAsBitmapMatrix
為非 null 並且受支援,則會使用該矩陣將物件繪製到螢幕範圍以外的點陣圖,而且會使用該顯示的延伸和/或旋轉的結果,以繪製物件至主要顯示畫面。
您必須先將 cacheAsBitmap
屬性設為 true
,才能建立內部點陣圖。
將顯示物件的 cacheAsBitmap
屬性設為 true
後,呈現方式並沒有改變,但顯示物件會自動執行像素貼齊。 在不同複雜程度的向量內容上,動畫速度都可以獲得明顯的提升。
只要將濾鏡套用到顯示物件 (若其 filter
陣列不是空的),cacheAsBitmap
屬性就會自動設為 true
;因此,如果顯示物件套用了濾鏡,則該顯示物件的 cacheAsBitmap
就會報告為 true
,即使已將屬性設定為 false
,亦是如此。 如果您將顯示物件的所有濾鏡清除,cacheAsBitmap
設定就會變更為上一次的設定。
在下列情況中,即使 cacheAsBitmap
屬性已設為 true
,且透過向量資料來呈現,顯示物件也不會使用點陣圖:
- 點陣圖太大。在 AIR 1.5 和 Flash Player 10 中,點陣圖影像的大小上限為 8,191 像素寬度或高度,且像素總計不得超過 16,777,215 像素 (因此,如果點陣圖影像的寬度為 8,191 像素,則其高度上限為 2,048 像素)。若為 Flash Player 9 和更早版本,高度與寬度的上限都是 2,880 像素。
- 配置點陣圖失敗 (記憶體不足的錯誤)。
cacheAsBitmap
屬性最適合與主要為靜態內容且不會經常縮放和旋轉的影片片段搭配使用。 對於這類影片片段,cacheAsBitmap
可以提升影片片段的轉移效能 (當它的 x 和 y 位置變更時)。
實作
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
filters | 屬性 |
filters:Array
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。 在 flash.filters 套件中包含的許多類別中已經定義了您可以使用的指定濾鏡。
您可以使用 ActionScript 程式碼在設計階段或執行階段將濾鏡套用到 Flash Professional。若要使用 ActionScript 套用濾鏡,必須先為整個 filters
陣列製作一個暫存副本、修改暫存陣列,然後再將暫存陣列的值指定給 filters
陣列。 您不可以直接將新的濾鏡物件加入至 filters
陣列。
若要使用 ActionScript 加入濾鏡,請依照下列步驟執行 (假設目標顯示物件名為 myDisplayObject
):
- 使用選定濾鏡類別的建構函式方法來建立新的濾鏡物件。
- 將
myDisplayObject.filters
陣列的值指定給暫存陣列,如名為myFilters
的陣列。 - 將新的濾鏡物件加入至
myFilters
暫存陣列。 - 將暫存陣列的值指定給
myDisplayObject.filters
陣列。
如果 filters
陣列為未定義,則不需要使用暫存陣列。 相反地,您可以直接指定陣列常值,其中包含一或多個已建立的濾鏡物件。 「範例」一節中的第一個範例會使用可以同時處理已定義與未定義之 filters
陣列的程式碼,來加入投影濾鏡。
若要修改現有的濾鏡物件,您必須使用修改 filters
陣列副本的技巧:
- 將
filters
陣列的值指定給暫存陣列,如名為myFilters
的陣列。 - 使用暫存陣列
myFilters
修改屬性。 例如,若要設定陣列中第一個濾鏡的 quality 屬性,可以使用下列程式碼:myFilters[0].quality = 1;
- 將暫存陣列的值指定給
filters
陣列。
如果顯示物件在載入階段已經有關聯的濾鏡,便會標記這個顯示物件,將它當做透明點陣圖進行快取處理。 因此,只要顯示物件包含有效的濾鏡清單,播放程式就會快取顯示物件當做點陣圖。 這個來源點陣圖會當做濾鏡效果的來源影像。 每個顯示物件通常擁有兩個點陣圖: 其中一個是原始、未經濾鏡處理的來源顯示物件,另一個是經過濾鏡處理後的最終影像。 顯示影像時是使用最終影像。 只要不變更顯示物件,就不需要更新最終影像。
flash.filters 套件包含濾鏡可用的類別。 例如,若要建立 DropShadow 濾鏡,您可以撰寫:
import flash.filters.DropShadowFilter var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)
您可以使用 is
運算子,判斷指定給位於 filter
陣列中每個索引位置的濾鏡類型。 例如,下列程式碼說明如何判斷 filters
陣列中第一個濾鏡為 DropShadowFilter 的位置:
import flash.text.TextField; import flash.filters.*; var tf:TextField = new TextField(); var filter1:DropShadowFilter = new DropShadowFilter(); var filter2:GradientGlowFilter = new GradientGlowFilter(); tf.filters = [filter1, filter2]; tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0 addChild(tf) function filterPosition(displayObject:DisplayObject, filterClass:Class):int { for (var i:uint = 0; i < displayObject.filters.length; i++) { if (displayObject.filters[i] is filterClass) { return i; } } return -1; }
注意:因為您無法直接將新的濾鏡物件加入至 DisplayObject.filters
陣列,所以下列程式碼對目標顯示物件 (名為 myDisplayObject
) 沒有任何作用:
myDisplayObject.filters.push(myDropShadow);
實作
public function get filters():Array
public function set filters(value:Array):void
height | 屬性 |
height:Number
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
會指出顯示物件的高度,以像素為單位。此高度是根據顯示物件內容的範圍計算而得。 當您設定 height
屬性時,scaleY
屬性也會相應調整,如下列程式碼所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;
除了 TextField 和 Video 物件,無內容的顯示物件 (例如,空的 Sprite) 的高度為 0,即使您嘗試將 height
設定為其它值也是如此。
實作
public function get height():Number
public function set height(value:Number):void
loaderInfo | 屬性 |
loaderInfo:LoaderInfo
[唯讀] 語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。 只有 SWF 檔案的根顯示物件,或載入的 Bitmap (並非使用 ActionScript 繪製的 Bitmap) 會定義 loaderInfo
屬性。 若要尋找與 SWF 檔案關聯,且包含名為 myDisplayObject
的顯示物件的 loaderInfo
物件,請使用 myDisplayObject.root.loaderInfo
。
大型的 SWF 檔案可以呼叫 this.root.loaderInfo.addEventListener(Event.COMPLETE, func)
來監視自己的下載。
實作
public function get loaderInfo():LoaderInfo
mask | 屬性 |
mask:DisplayObject
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
指定的 mask
物件會遮蓋呼叫的顯示物件。 為了確保縮放舞台時也能呈現出遮蓋效果,顯示清單中的 mask
顯示物件必須為作用中。 尚未繪製 mask
物件本身。 請將 mask
設定為 null
以移除遮色片。
若要縮放遮色片物件,此物件必須位於顯示清單中。 若要拖曳遮色片 Sprite 物件 (藉由呼叫它的 startDrag()
方法),此物件必須位於顯示清單中。 若要根據 Sprite 所傳送的 mouseDown
事件來呼叫 Sprite 遮色片的 startDrag()
方法,請將 Sprite 的 buttonMode
屬性設為 true
。
藉由將 cacheAsBitmap
屬性設定為 true
,以及將 cacheAsBitmapMatrix
屬性設定為 Matrix 物件來快取顯示物件時,遮色片和被遮色的顯示物件都必須是相同快取點陣圖的一部份。因此,如果快取顯示物件,遮色片就必須是顯示物件的子系。如果快取顯示清單上顯示物件的祖系,遮色片就必須是該祖系的子系,或該祖系的後代之一。如果快取一個以上被遮色物件的祖系,遮色片則必須是最接近顯示清單中被遮色物件之快取容器的後代。
注意:您無法使用單一 mask
物件來遮色處理多個呼叫的顯示物件。當此 mask
指定給第二個顯示物件時,它就會遭移除,不再成為第一個物件的遮色片,而且該物件的 mask
屬性會成為 null
。
實作
public function get mask():DisplayObject
public function set mask(value:DisplayObject):void
measuredHeight | 屬性 |
measuredHeight:Number
[唯讀] 語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
The measured height of this object.
This is typically hard-coded for graphical skins
because this number is simply the number of pixels in the graphic.
For code skins, it can also be hard-coded
if you expect to be drawn at a certain size.
If your size can change based on properties, you may want
to also be an ILayoutManagerClient so a measure()
method will be called at an appropriate time,
giving you an opportunity to compute a measuredHeight
.
實作
public function get measuredHeight():Number
measuredWidth | 屬性 |
measuredWidth:Number
[唯讀] 語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
The measured width of this object.
This is typically hard-coded for graphical skins
because this number is simply the number of pixels in the graphic.
For code skins, it can also be hard-coded
if you expect to be drawn at a certain size.
If your size can change based on properties, you may want
to also be an ILayoutManagerClient so a measure()
method will be called at an appropriate time,
giving you an opportunity to compute a measuredHeight
.
實作
public function get measuredWidth():Number
mouseX | 屬性 |
mouseY | 屬性 |
name | 屬性 |
opaqueBackground | 屬性 |
opaqueBackground:Object
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
會指定顯示物件是否不透明,並具有特定背景顏色。 透明的點陣圖包含 Alpha 色版資料,且會繪製成透明狀。 不透明的點陣圖沒有 Alpha 色版 (呈現的速度比透明點陣圖還快)。 如果點陣圖是不透明的,您就可以指定要使用的自身背景顏色。
如果設為數值,則表面會使用數值所指定的 RGB 背景顏色來呈現不透明狀。 如果設為 null
(預設值),則顯示物件會具有透明的背景。
opaqueBackground
屬性主要用途即為與 cacheAsBitmap
屬性搭配使用,以呈現最佳化效果。 在 cacheAsBitmap
屬性已設為 true 的顯示物件上,設定 opaqueBackground
可以增進顯示效能。
呼叫 hitTestPoint()
方法時,如果 shapeFlag
參數設為 true
,則「無法」配合不透明背景區域使用。
不透明背景區域不會回應滑鼠事件。
實作
public function get opaqueBackground():Object
public function set opaqueBackground(value:Object):void
parent | 屬性 |
parent:DisplayObjectContainer
[唯讀] 語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
指出包含此顯示物件的 DisplayObjectContainer 物件。 請使用 parent
屬性來指定相對路徑,以便顯示位於顯示清單階層中目前顯示物件之上的物件。
您可以使用 parent
在顯示清單中向上移動多個階層,如下列所示:
this.parent.parent.alpha = 20;
實作
public function get parent():DisplayObjectContainer
root | 屬性 |
root:DisplayObject
[唯讀] 語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
對載入之 SWF 檔案的顯示物件而言,root
屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。 以呈現出載入之影像檔的 Bitmap 物件而言,root
屬性是 Bitmap 物件本身。 以第一個載入的 SWF 檔案的主要類別實體而言,root
屬性就是顯示物件本身。 Stage 物件的 root
屬性即為 Stage 物件本身。 對於任何尚未加入顯示清單的顯示物件,root
屬性都是設為 null
,除非加入的顯示物件容器已經從顯示清單中移除,但仍是載入的 SWF 檔案中最上層顯示物件的子物件。
例如,如果您藉由呼叫 Sprite()
建構函式方法來建立新的 Sprite 物件,在您將它加入顯示清單 (或者加入已從顯示清單中移除,但仍是 SWF 檔案最上層顯示物件之子物件的顯示物件容器中) 之前,它的 root
屬性一直都是 null
。
對於載入的 SWF 檔案而言,儘管用來載入檔案的 Loader 物件可能已不在顯示清單上,SWF 檔案中的最上層顯示物件還是為將它的 root
屬性設為自己。 除非將 Loader 物件加入做為已設定 root
屬性之顯示物件的子物件,否則 Loader 無法設定它的 root
屬性。
實作
public function get root():DisplayObject
rotation | 屬性 |
rotation:Number
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。 0 至 180 之間的數值代表順時針方向旋轉;0 至 -180 之間的數值代表逆時針方向旋轉。超過此範圍的數值會被加上或減去 360 的倍數,以獲得該範圍之內的數值。 例如,my_video.rotation = 450
陳述式會與 my_video.rotation = 90
相同。
實作
public function get rotation():Number
public function set rotation(value:Number):void
scale9Grid | 屬性 |
scale9Grid:Rectangle
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
目前產生效用的縮放格線。 如果設定為 null
,套用任何縮放變形時,整個顯示物件將會正常縮放。
當您定義 scale9Grid
屬性時,顯示物件會根據定義的格線中心區域的 scale9Grid
矩形,分割成含有九個區域的格線。 其它八個格線區域則分佈在下列區域:
- 矩形外左上角的區域
- 矩形上方的區域
- 矩形外右上角的區域
- 矩形左方的區域
- 矩形右方的區域
- 矩形外左下角的區域
- 矩形下方的區域
- 矩形外右下角的區域
您可以將中央區域 (由矩形定義) 以外的八個區域當做顯示物件縮放時套用特殊規則的圖片頁框。
當 scale9Grid
屬性已設定且顯示物件已縮放,所有文字和漸層都會正常縮放;然而,其它類型的物件適用下列規則:
- 中心區域的內容會正常縮放。
- 不會縮放角落的內容。
- 上下區域的內容只會水平縮放。 左右區域的內容只會垂直縮放。
- 所有填色 (包括點陣圖、視訊和漸層) 都將延伸以符合區域的形狀。
如果顯示物件已經旋轉,所有的後續縮放都會正常 (且忽略 scale9Grid
屬性)。
例如,假設有下列的顯示物件以及一個已套用顯示物件之 scale9Grid
的矩形:
顯示物件。 |
紅色矩形會顯示 |
當縮放或延伸顯示物件後,矩形內的物件可以正常地縮放,但矩形外的物件則依據 scale9Grid
規則進行縮放:
縮放為 75%: | |
縮放為 50%: | |
縮放為 25%: | |
水平延伸 150%: |
設定 scale9Grid
一般是用於設定當作組件使用的顯示物件,其中邊緣區域在縮放組件後仍會保留相同的寬度。
實作
public function get scale9Grid():Rectangle
public function set scale9Grid(value:Rectangle):void
scaleX | 屬性 |
scaleY | 屬性 |
scrollRect | 屬性 |
scrollRect:Rectangle
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
顯示物件的捲動矩形範圍。 顯示物件會裁剪至矩形所定義的尺寸,並在您變更 scrollRect
物件的 x
和 y
屬性時,於矩形內捲動。
scrollRect
Rectangle 物件的屬性採用顯示物件的座標空間,縮放的方式和整體顯示物件一樣。 在捲動中顯示物件之裁切視窗的角落邊界是位於顯示物件的原點 (0,0),以及矩形寬度與高度所定義的點。 這些點並不以原點為中心,但會使用原點來定義區域的左上角。 捲動顯示物件的方式永遠是以完整的像素遞增捲動。
設定 scrollRect
Rectangle 物件的 x
屬性,可以將物件向左或向右捲動。 設定 scrollRect
Rectangle 物件的 y
屬性,可以將物件向上或向下捲動。 如果顯示物件旋轉了 90° 而您向左和向右捲動它,則顯示物件實際上會向上與向下捲動。
請注意,只有在顯示物件時,才會處理 scrollRect
屬性的變更。因此,如果在修改 scrollRect
之後呼叫諸如 localToGlobal
等方法,可能不會產生預期的結果。
注意:從 Flash Player 11.4/AIR 3.4 開始,矩形寬度或高度的負值已變更為 0。
實作
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
stage | 屬性 |
transform | 屬性 |
transform:flash.geom:Transform
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。 特定屬性,包括 matrix、colorTransform 以及三個唯讀屬性 (concatenatedMatrix
、concatenatedColorTransform
和 pixelBounds
),將在 Transform 類別項目中說明。
每個變形物件的屬性其本身就是一個物件。 這一點很重要,因為要設定矩陣或 colorTransform 物件的新值,唯一的方式就是建立新物件並將該物件複製到 transform.matrix 或 transform.colorTransform 屬性。
例如,若要增加顯示物件矩陣的 tx
值,必須為整個矩陣物件建立副本,然後將此新物件複製到變形物件的矩陣屬性:
var myMatrix:Matrix = myDisplayObject.transform.matrix;
myMatrix.tx += 10;
myDisplayObject.transform.matrix = myMatrix;
您不能直接設定 tx
屬性。 下列程式碼不會影響 myDisplayObject
:
myDisplayObject.transform.matrix.tx += 10;
您也可以複製整個變形物件,再將它指定給另一個顯示物件的變形屬性。 例如,下列程式碼會將整個變形物件從 myOldDisplayObj
複製到 myNewDisplayObj
:
myNewDisplayObj.transform = myOldDisplayObj.transform;
產生的顯示物件 myNewDisplayObj
現在和原有的顯示物件 myOldDisplayObj
,都具有相同的矩陣、顏色轉換和像素邊界值。
請注意,若有硬體加速可供使用,AIR for TV 裝置會自動為顏色變化使用硬體加速。
實作
public function get transform():flash.geom:Transform
public function set transform(value:flash.geom:Transform):void
visible | 屬性 |
width | 屬性 |
width:Number
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
會指出顯示物件的寬度,以像素為單位。 此寬度是根據顯示物件內容的範圍計算而得。 當您設定 width
屬性時,scaleX
屬性也會相應調整,如下列程式碼所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;
除了 TextField 和 Video 物件,無內容的顯示物件 (例如,空的 Sprite) 的寬度為 0,即使您嘗試將 width
設定為其它值也是如此。
實作
public function get width():Number
public function set width(value:Number):void
x | 屬性 |
x:Number
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。 如果物件位於已經變形的 DisplayObjectContainer 中,就表示位於包含的 DisplayObjectContainer 的區域座標系統中。 因此,對於以逆時針旋轉 90° 的 DisplayObjectContainer 而言,DisplayObjectContainer 子物件會繼承以逆時針旋轉 90° 的座標系統。 物件的座標是指註冊點的位置。
實作
public function get x():Number
public function set x(value:Number):void
y | 屬性 |
y:Number
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。 如果物件位於已經變形的 DisplayObjectContainer 中,就表示位於包含的 DisplayObjectContainer 的區域座標系統中。 因此,對於以逆時針旋轉 90° 的 DisplayObjectContainer 而言,DisplayObjectContainer 子物件會繼承以逆時針旋轉 90° 的座標系統。 物件的座標是指註冊點的位置。
實作
public function get y():Number
public function set y(value:Number):void
getBounds | () | 方法 |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace
物件的座標系統) 的矩形。 以下列程式碼為例,矩形的傳回方式會根據您傳遞至方法的 targetCoordinateSpace
參數而有所不同:
var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)
注意:使用 localToGlobal()
和 globalToLocal()
方法,分別將顯示物件的區域座標轉換成顯示座標,或是將顯示座標轉換成區域座標。
getBounds()
方法與 getRect()
方法類似;然而,getBounds()
方法所傳回的「矩形」包含形狀上的任何筆畫,而 getRect()
方法所傳回的「矩形」則不然。 如需範例,請參閱 getRect()
方法的說明。
參數
targetCoordinateSpace:DisplayObject — The display object that defines the coordinate system to use.
|
Rectangle — The rectangle that defines the area of the display object relative to
the targetCoordinateSpace object's coordinate system.
|
getRect | () | 方法 |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
根據 targetCoordinateSpace
參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。 getRect()
方法所傳回的值等於或小於 getBounds()
方法所傳回的值。
注意:使用 localToGlobal()
和 globalToLocal()
方法,分別將顯示物件的區域座標轉換成舞台座標,或是將舞台座標轉換成區域座標。
參數
targetCoordinateSpace:DisplayObject — The display object that defines the coordinate system to use.
|
Rectangle — The rectangle that defines the area of the display object relative to
the targetCoordinateSpace object's coordinate system.
|
globalToLocal | () | 方法 |
public function globalToLocal(point:Point):Point
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
將 point
物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。
若要使用此方法,請先建立 Point 類別的實體。 您指定的 x 與 y 值與主要顯示區域的原點 (0,0) 相關,所以代表全域座標。 接著,將 Point 實體當作參數傳送至 globalToLocal()
方法。 此方法會傳回含有 x 與 y 值,且與顯示物件原點相關 (而不是與舞台原點相關) 的新 Point 物件。
參數
point:Point — An object created with the Point class. The Point object
specifies the x and y coordinates as properties.
|
Point — A Point object with coordinates relative to the display object.
|
hitTestObject | () | 方法 |
public function hitTestObject(obj:DisplayObject):Boolean
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
評估顯示物件的範圍框,看它是否與 obj
顯示物件的範圍框重疊或相交。
參數
obj:DisplayObject — The display object to test against.
|
Boolean — true if the bounding boxes of the display objects intersect; false if not.
|
hitTestPoint | () | 方法 |
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
評估顯示物件,看它是否與 x
和 y
參數所指定的點重疊或相交。 x
和 y
參數會指定舞台座標空間的點,而不是包含顯示物件的顯示物件容器 (除非該顯示物件容器就是舞台)。
參數
x:Number — The x coordinate to test against this object.
| |
y:Number — The y coordinate to test against this object.
| |
shapeFlag:Boolean (default = false ) — Whether to check against the actual pixels of the object (true )
or the bounding box (false ).
|
Boolean — true if the display object overlaps or intersects with the specified point;
false otherwise.
|
localToGlobal | () | 方法 |
public function localToGlobal(point:Point):Point
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
將 point
物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。
這個方法可以讓您將任何指定的 x 和 y 座標值,從相對於特定顯示物件 (區域座標) 的原點 (0,0) 轉換成相對於舞台 (全域座標) 的原點。
若要使用此方法,請先建立 Point 類別的實體。 您指定的 x 與 y 值與顯示物件的原點相關,所以代表區域座標。
接著,將您建立做為參數的 Point 實體傳送至 localToGlobal()
方法。 此方法會傳回含有 x 與 y 值,且與舞台原點相關 (而不是與顯示物件原點相關) 的新 Point 物件。
參數
point:Point — The name or identifier of a point created with the Point class, specifying the
x and y coordinates as properties.
|
Point — A Point object with coordinates relative to the Stage.
|
move | () | 方法 |
setActualSize | () | 方法 |
public function setActualSize(newWidth:Number, newHeight:Number):void
語言版本: | ActionScript 3.0 |
產品版本: | Flex 3 |
執行階段版本: | Flash Player 9, AIR 1.1 |
Sets the actual size of this object.
This method is mainly for use in implementing the
updateDisplayList()
method, which is where
you compute this object's actual size based on
its explicit size, parent-relative (percent) size,
and measured size.
You then apply this actual size to the object
by calling setActualSize()
.
In other situations, you should be setting properties
such as width
, height
,
percentWidth
, or percentHeight
rather than calling this method.
參數
newWidth:Number — The new width for this object.
| |
newHeight:Number — The new height for this object.
|
Tue Jun 12 2018, 03:47 PM Z