[转]项目遇到的两个问题,屏幕中心缩放,Bitmap的清空

[url]http://uh.9ria.com/space-12147-do-blog-id-358.html[/url]

BitmapData如果不改变大小,只是更新内容的话,原来都是dispose然后再new一个,否则会一直叠在上面。。
很浪费。

今天请教了下别人,算解决了。

_bitmapData.fillRect(new Rectangle(0,0,_width,_height),0x00FFFFFF);

我楞是这么长时间没有发现fillRect这么个方法。可见还是原来想到的那个问题:

许多方法不是Adobe没有提供,而且我们自己不去用。



屏幕中心缩放说起来简单,也做过,但这次还要考虑中心点的问题,混在一起就混乱了。

后来我决定一步一步来。

首先,给grid对象读取/设置中心点的方法:

public function get globalCenter():Point{
return parent.localToGlobal(new Point(x+width/2,y+height/2));
}
public function set globalCenter(value:Point):void{
var _localPoint:Point=parent.globalToLocal(value);
x=_localPoint.x-width/2;
y=_localPoint.y-height/2;
}
//一定注意啊,width,height只有在parent下才是我们要的值。。没缩放好说,缩放了就不同了。



然后,保证缩放前后中心点与屏幕中心的距离也按照比例进行变化:

var _oldScale:Number=_grid.scaleX;
var _oldGlobalCenter:Point=_grid.globalCenter;
_grid.scaleX=_grid.scaleY=Math.pow(2,3-(SizeBN.y-110)/65*5);
_grid.globalCenter=new Point(stage.stageWidth/2+(_oldGlobalCenter.x-stage.stageWidth/2)/_oldScale*_grid.scaleX,
stage.stageHeight/2+(_oldGlobalCenter.y-stage.stageHeight/2)/_oldScale*_grid.scaleY);



这些坐标类的东西混在一起就全乱了。

所以,步步攻艰吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值