基本上我試圖做的是有一個TileGroup組件的horizontalCenter和verticalCenter屬性與鼠標動作相反地修改,並使用一個spark移動效果使該動作平穩。 TileGroup是一個mx:Canvas的子集,它被設置爲100%寬和100%高。他們在TileGroup中大約有20個左右的BorderContainer。Flex 4.5.1當使用MOUSE_MOVE事件觸發動畫的TileGroup在一個畫布內時動畫不規則動畫
有關它應該如何工作的一個例子,看看http://gallery.artofgregmartin.com/
我的移動版就是這樣一個,但它不是幾乎一樣光滑。縱觀CPU使用情況的礦井和他差不多的(當運動持續80-90%)使用,但我們在GPU的使用有所不同。我的礦工只用了大約4%,而他的礦工接近10%。
這裏是我的移動代碼:
private function onMouseMove(event:MouseEvent):void{
var stageCenterX:Number = this.stage.stageWidth/2;
var stageCenterY:Number = this.stage.stageHeight/2;
var sliderPanelCenterX:Number = sliderPanel.width/2;
var sliderPanelCenterY:Number = sliderPanel.height/2;
var mouseX:Number = event.stageX;
var mouseY:Number = event.stageY;
var offsetX:Number = 0;
var offsetY:Number = 0;
var padding:Number = 400;
var multX:Number = (stageCenterX - mouseX)/stageCenterX;
offsetX = (multX * sliderPanelCenterX);
if(mouseX <= stageCenterX){
offsetX = offsetX - Math.abs(multX * stageCenterX) + Math.abs(multX * padding);
}
else {
offsetX = offsetX + Math.abs(multX * stageCenterX) - Math.abs(multX * padding);
}
var multY:Number = (stageCenterY - mouseY)/stageCenterY;
offsetY = (multY * sliderPanelCenterY);
if(mouseY <= stageCenterY){
offsetY = offsetY - Math.abs(multY * stageCenterY) + Math.abs(multY * padding);
}
else {
offsetY = offsetY + Math.abs(multY * stageCenterY) - Math.abs(multY * padding);
}
panelHC = Math.round(offsetX);
panelVC = Math.round(offsetY);
movePanel.captureStartValues();
sliderPanel.verticalCenter = panelVC; //sliderPanel is the id for the TileGroup
sliderPanel.horizontalCenter = panelHC;
movePanel.play();
}
這裏是虔誠的MXML代碼:
<fx:Declarations>
<s:Move id="movePanel" target="{sliderPanel}" />
</fx:Declarations>
<mx:Canvas width="100%" height="100%" backgroundColor="#111111"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<s:TileGroup id="sliderPanel" horizontalGap="2" verticalGap="2" width="2010"
horizontalCenter="0" verticalCenter="0" z="1" />
</mx:Canvas>
好吧,我給一個去,並且它似乎產生相反的效果。我在mouse_move事件處理程序中添加了event.updateAferEvent()方法,並且它變得瘋狂起伏。 – Nigel