`

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

阅读更多
http://uh.9ria.com/space-12147-do-blog-id-358.html

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);



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

所以,步步攻艰吧。
分享到:
评论

相关推荐

    Bitmap高效加载及图片缓存demo

    Bitmap对象在Android系统中用于表示图像数据,但如果不合理使用,可能导致内存溢出、应用卡顿等问题。本示例代码旨在展示如何高效地加载Bitmap,以及实现图片缓存策略,从而提高应用性能和用户体验。 在Android中,...

    c# picturebox 简单签名

    为此,可以使用两个队列分别存储历史的线条和未来的线条,每次绘制时更新这两个队列。在用户请求撤销时,将历史队列的最后一个元素移动到未来队列,然后重新绘制。同样,重做时则将未来队列的最后一个元素移动回历史...

    MINNIGUI常见问题

    - **问题描述**:编辑框在设置了只读属性后仍然允许用户输入,或者输入一个字符却显示两个。 - **解决方法**:大多数可编辑的控件都支持`READONLY`属性,通过设置该属性可以使编辑框变为只读状态,禁止用户修改其...

    装载图片,复制图片,清除图像,VB6.0,GUI源代码

    首先,创建两个Bitmap对象,然后用其中一个对象的Draw方法从另一个对象获取图像: ```vb Dim sourceBitmap As New Bitmap Dim destBitmap As New Bitmap sourceBitmap = CType(PictureBox1.Image, Bitmap) ...

    清除canvas画布内容(点擦除+线擦除)

    这个操作不仅清除了当前的内容,而且如果画布的尺寸发生变化,可能会影响到画布的相对位置和缩放。因此,这种方法适用于需要完全清除画布并可能改变尺寸的情况。 2. `clearRect`方法 `clearRect`方法用于清除...

    android异步加载图片缓存释放

    对于图片加载库,Android社区有多个优秀的开源项目,如Picasso、Glide、 Fresco等,它们都提供了高效的图片异步加载和缓存功能。以Glide为例,它支持自动处理内存和磁盘缓存,同时提供了丰富的API来定制图片的加载、...

    Glide图片加载

    通过分析这个项目,开发者可以更直观地学习Glide的各种功能,并将其应用于自己的项目中。 总之,Glide作为Android平台上的强大图片加载库,其丰富的功能和易用性使得它成为了开发者们的首选。通过深入理解并熟练...

    Android 仿微信QQ多选图片

    在Android开发中,"仿微信QQ多选图片"是一个常见的需求,主要涉及到用户在应用内选择多张图片,类似于微信和QQ中的图片选取功能。这个功能的实现涉及到多个技术点,包括图片的显示、选择状态的管理、权限处理以及...

    C# 生成高质量缩略图程序—终极算法

    3. 定义了两个变量`bitmapWidth`和`bitmapHeight`,分别表示缩略图的目标宽度和高度,初始值等于传入的`width`和`height`。 4. 使用一个条件语句来确定缩略图的实际尺寸。如果原始图像的宽高比大于缩略图的宽高比,...

    python控制windows剪贴板,向剪贴板中写入图片的实例

    这一步使用win32clipboard的SetClipboardData函数,它需要两个参数,第一个是数据格式,这里我们使用了win32con模块中的CF_BITMAP常量表示我们要写入的是位图数据。第二个参数是上一步中我们从LoadImageW获得的句柄...

    c#生成图片缩略图的类(2种实现思路)

    本文将详细介绍两种不同的实现思路来创建一个生成图片缩略图的类,并包含四个重载方法,分别用于不同的使用场景。 首先,我们需要了解缩略图生成的基本步骤: 1. 从给定的原始图片路径加载图片; 2. 根据指定的宽度...

Global site tag (gtag.js) - Google Analytics