`

九宫缩放scale9Grid

阅读更多
一、API中关于九宫缩放scale9Grid的介绍
1、当定义flash.display.DisplayObject的scale9Grid:Rectangle属性时,该显示对象被分割到以scale9Grid矩形为基础的具有九个区域的网格中。网格的其它八个区域如下:矩形外的左上角、矩形上方的区域、矩形外的右上角、矩形左侧的区域、矩形右侧的区域、矩形外的左下角、矩形下方的区域、矩形外的右下角,可以认为中心区域(由矩形定义)之外的八个区域类似于在缩放时已应用特殊规则的图片帧。
2、在设置 scale9Grid 属性并缩放显示对象后,会正常缩放所有文本和渐变;但是,对于对象的其它类型,将应用以下规则:
正常缩放中心区域中的内容。
不缩放转角中的内容。
仅水平缩放顶部和底部区域中的内容。仅垂直缩放左侧和右侧区域中的内容。
拉伸所有填充(包括位图、视频和渐变)以适应其形状。
如果旋转显示对象,则所有后续缩放都是正常的(并会忽略 scale9Grid 属性)。
设置 scale9Grid 的常见用法是设置用作组件的显示对象,当缩放该组件时,其中的边缘区域保持相同的宽度。
3、API中的例子源码Scale9GridExample.as
import flash.display.Shape;
import flash.display.GradientType;
import flash.display.SpreadMethod;
import flash.display.Sprite;
import flash.display.InterpolationMethod;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.utils.Timer;
import flash.events.TimerEvent;
 
public class Scale9GridExample extends Sprite
{
       private var square:Shape;
       public function Scale9GridExample()
       {
              initSquare();
       }
       private function initSquare():void {
              square = new Shape();
              square.graphics.lineStyle(20, 0xFFCC00);
              var gradientMatrix:Matrix = new Matrix();
              gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10);
              square.graphics.beginGradientFill(GradientType.RADIAL,
                     [0xffff00, 0x0000ff],
                     [100, 100],
                     [0, 0xFF],
                     gradientMatrix,
                     SpreadMethod.REFLECT,
                     InterpolationMethod.RGB,
                       0.9);
              square.graphics.drawRect(0, 0, 100, 100);
              var grid:Rectangle = new Rectangle(20, 20, 60, 60);
              square.scale9Grid = grid ;
              addChild(square);
              var tim:Timer = new Timer(100);
              tim.start();
              tim.addEventListener(TimerEvent.TIMER, scale);
       }
       private function scale(event:TimerEvent):void {
              var scaleFactor:Number = 1.01;
            square.scaleX *= scaleFactor;
            square.scaleY *= scaleFactor;
            if (square.scaleX > 2.0) {
                       scaleFactor = 0.99;
                  }
            if (square.scaleX < 1.0) {
                       scaleFactor = 1.01;
                  }
       }
}

二、哪些时候会无效
1、只对矢量图起作用,对图片无效。解决办法参考:
http://bbs.blueidea.com/viewthread.php?tid=2915069
2、对Shape对象使用scale9Grid,有效。但是如果用Shape.graphics.beginBitmapFill (new BitmapData());//仅用了一个BitmapData对象填充Shape对象后,无效!
3、对Sprite对象使用scale9Grid:
(1)仅对Sprite对象下的“图形元件”和“直接绘制的形状”有效。
(2)对Sprite对象下的Sprite对象,无效!
(3)对Sprite对象下的“图形元件”,如果该“图形元件”内仅包含另个Sprite对象,依然无效。
4、参考博客:scale9Grid – When it works and when it does not
http://www.ovidiudiac.ro/blog/2009/05/scale9grid-work-and-fail/
三、Flex中使用Embed标签
Embed(source="track.png",scaleGridTop="20",scaleGridLeft="7",scaleGridRight="9",scaleGridBottom="80");
四、创建一个具有九宫格功能的Bitmap
http://flex2.group.iteye.com/group/blog/513064
五、推荐http://bbs.9ria.com/thread-47414-1-1.html(第三个页面打不开,郁闷)




注意点:

一:x,y坐标不能为0,0
二:x坐标+width的值不能大于你的mc
三:y坐标+height的值不能大于你的mc
分享到:
评论

相关推荐

    ActionScript3位图九宫格缩放工具类

    帮助flash内实现图片的9宫格缩放,位图九宫格缩放,ActionScript3代码实现。

    九宫算法 九宫算法

    九宫算法,也被称为“数独”或者“拉丁方块”,是一种源于中国古代的数学游戏,其目标是在一个3x3的宫格内填入数字1到9,使得每一行、每一列以及每个小3x3的宫格内的数字都不重复。这种算法在现代被广泛应用于逻辑...

    九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图计算九宫图,计算九宫图,计算九宫图计算九宫图计算九宫图计算九宫图计算

    九宫图计算九宫图计算九宫图计算,soursecode九宫图计算九宫图计算九宫图计算,soursecode九宫图计算九宫图计算九宫图计算,soursecode九宫图计算九宫图计算九宫图计算,soursecode九宫图计算九宫图计算九宫图计算,...

    九宫重排九宫排序

    重排九宫问题进行求解,演示了“广度优先搜索”、“深度优先搜索”、“有界深度优先搜索”、 “最好优先搜索”和“局部择优搜索”五种基本的图图搜索策略。 整个程序使用了动画技术,界面设计美观友好,使用方便。 ...

    九宫重排c++实现

    用c++实现的九宫重排问题 能在vc++6.0下运行 适合于初学c++语言的同学 形象的展示了九宫重排问题

    重排九宫三种算法

    这个问题的扩展版可以是9皇后在9×9的棋盘上,也就是"重排九宫"。下面我们将详细讨论三种不同的算法来解决这个问题。 1. **回溯法**: 回溯法是一种试探性的解决问题的方法,通过尝试所有可能的解决方案并逐步构建...

    九宫图程序(java实现)

    在Java中,可以声明一个9x9的二维数组`int[][] grid`,每个元素代表九宫图的一个单元格。 3. **初始化数组:** 程序可能包含一个初始化方法,用于设置数组的初始值,通常是0,表示未填充的单元格。例如,`for(int i...

    重拍九宫排序问题 用c++实现

    重拍九宫排序问题是一种基于九宫格的数学游戏,也称为“数独”的变种。在这个问题中,目标是将数字1到9填充到一个3x3的宫格中,使得每一行、每一列以及每个小的3x3宫格内的数字都恰好出现一次。在C++中实现这个问题...

    九宫棋加源码

    九宫棋,又称“井字游戏”或“三子棋”,是一种简单但策略性极强的双人对弈游戏。在这个游戏中,玩家轮流在3x3的格子中放置自己的棋子,目标是先形成一行、一列或一条对角线上的三个同色棋子。由于棋盘小且规则简单...

    九宫件事图形化软件

    九宫件事图形化软件

    Android仿支付宝九宫图效果

    4. **Bitmap加载与缩放**: 如果九宫图中的图片来自于网络或本地文件,需要使用Bitmap对象进行处理。考虑到性能和内存占用,通常会使用`BitmapFactory.Options`来控制解码时的尺寸,并使用`Bitmap.createScaledBitmap...

    九宫阵算法

    九宫阵是由9个小的3x3的子网格构成的3x3的大网格。每个小网格内有9个单元格,总计81个单元格。目标是将1到9这9个数字填入这些单元格中,使得每一行、每一列以及两个对角线上的数字都不重复。 二、回溯法简介 回溯法...

    九宫问题 MFC 课程设计

    九宫问题,也被称为数独,是一种经典的逻辑谜题,要求在9×9的网格中填入数字,使得每一行、每一列以及每一个3×3的小宫格内的数字都恰好出现一次,且不能重复。MFC(Microsoft Foundation Classes)是微软提供的...

    九宫问题.rar

    它的目标是在一个3x3的宫格内填入数字1到9,使得每一行、每一列以及每个小3x3宫格内的数字都不重复。这个问题在编程领域中常被用作练习,以提升算法设计和逻辑思维能力。 在这个“九宫问题.rar”压缩包文件中,我们...

    java九宫排序算法

    对于九宫排序,可以创建一个二维数组表示9个宫格的状态,用0表示未填充,正整数表示已填充的数字。通过迭代更新数组,每次找到一个可行的填入数字,直到所有位置都被填充且满足条件。 4. **深度优先搜索(DFS)**:...

    Android九宫图加对话框.rar

    在Android开发中,九宫图通常用于展示一系列小图片或者图标,这种布局方式可以有效地排列和展示内容,常被用于应用的启动页、设置界面或者个性化定制区域。对话框(Dialog)则是Android系统中一种重要的交互元素,它...

    九宫排序 人工智能

    九宫排序,也被称为“幻方”,是一种古老而有趣的数学问题,它涉及到将数字填入一个3x3的网格中,使得每一行、每一列以及两条对角线上的数字和都相等。这个概念在现代计算机科学中也有着重要的应用,尤其是在算法...

    用VC++实现九宫图

    在三阶九宫图中,3x3的格子需要填入1到9的数字,每个数字在每一行、每一列以及两条对角线上都只能出现一次,以此达到每行、每列和对角线上的数字和均相等。这种问题在逻辑思维、编程算法和游戏设计中都有广泛应用。 ...

    android九宫图代码

    在Android开发中,"九宫图"通常指的是用于布局或界面设计的一种图形元素,它可以用于创建网格状的显示区域,通常被用在如社交媒体应用的个人资料页、瀑布流布局等场景,展示用户的照片或者其他的图像内容。...

    A*算法求解重排九宫问题

    用A*算法求解重排九宫问题,将九宫格以3*3矩阵形式设计为动态对象数组类的对象,形式比较新颖。希望对大家了解A*算法,重排九宫,以及c++的动态对象数组类有所帮助。文档包含一个动态对象数组类头文件和一个源文件。

Global site tag (gtag.js) - Google Analytics