基本上我试图做的是有一个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