flex 11 顯示物件矩陣轉換

2021-06-07 13:11:19 字數 2782 閱讀 8288

import com.cen.programmingas3.matrix.matrixtransformer;

import mx.events.flexevent;

protected function creationcompletehandler(event:flexevent):void

/*** 遮蓋

*/public function setimagemask():void

/*** 重置各個控制項值

*/private function resetfields():void

private function resettransform():void

private function transformdisplayobject():void

else

tempmatrix = matrixtransformer.transform(tempmatrix, 

xscaleslider.value,

yscaleslider.value, 

dxslider.value,

dyslider.value,

rotationslider.value,

skewslider.value,

skewside);

img.content.transform.matrix = tempmatrix;

}]]>

text="在下邊設定轉換值,然後按下『轉換』按鈕來檢視右邊圖形的整體變化;"/>

tickinterval="20" snapinterval="1" labels="[0, 100, 200]"/>

tickinterval="20" snapinterval="1" labels="[0, 100, 200]"/>

tickinterval="20" snapinterval="1" labels="[-100, 0, 100]"/>

tickinterval="20" snapinterval="1" labels="[-100, 0, 100]"/>

tickinterval="90" snapinterval="1" labels="[-360, 0, 360]"/>

width="100%" selected="true"/>

width="100%"/>

tickinterval="10" snapinterval="1" labels="[-90, 0, 90]"/>

=>matrixtransformer.as

package com.cen.programmingas3.matrix

/*** 旋轉

* @param sourcematrix

* @param angle

* @param unit

* @return 

*/public static function rotate(sourcematrix:matrix, angle:number, unit:string="radians"):matrix

if(unit == "gradients")

sourcematrix.rotate(angle);

trace("=>rotate_angle("+angle+")_unit("+unit+");");

return sourcematrix;

}/**

* 移動

* @param sourcematrix

* @param dx

* @param dy

* @return 

*/public static function translate(sourcematrix:matrix, dx:number, dy:number):matrix

/*** 縮放 

* @param sourcematrix

* @param xscale

* @param yscale

* @param percent

* @return 

*/public static function scale(sourcematrix:matrix, xscale:number, yscale:number, percent:boolean=true):matrix

sourcematrix.scale(xscale, yscale);

trace("=>scale_xscale("+xscale+")_yscale("+yscale+");");

return sourcematrix;

}/**

* 傾斜

* @param sourcematrix

* @param angle

* @param skewside

* @param unit

* @return 

*/public static function skew(sourcematrix:matrix, angle:number, skewside:string="right", unit:string="degrees"):matrix

if(unit == "gradients")

var skewmatrix:matrix = new matrix();

if(skewside == "right") else

sourcematrix.concat(skewmatrix);

trace("=>skew_angle("+angle+")_skewside("+skewside+");");

return sourcematrix;}}

}

C 11顯示型別轉換的優點

1.隱式型別轉換的問題 隱式型別轉換是c 乙個讓人又愛又恨的特性,使用方便,但可能會降低 可讀性,甚至會造成一些十分隱晦的錯誤。include using namespace std class myint 型別轉換操作符 operator bool const noexcept 加運算子過載 my...

Flex4的視覺化顯示物件

flex3中用addchild child displayobject 增加顯示物件,flex4中用addelement element ivisualelement 絕大多數的flex3顯示控制項都是從dispalyobject繼承的,所以在flex3中增加顯示物件非常容易。一旦到了flex4,要...

Flex4的視覺化顯示物件

flex4的視覺化顯示物件 2011年05月12日 flex3中用addchild child displayobject 增加顯示物件,flex4中用addelement element ivisualelement 絕大多數的flex3顯示控制項都是從dispalyobject繼承的,所以在fl...