学习 Flash 中的 ActionScript 2.0 |
|
|
|
| 动画、滤镜和绘画 > 了解缩放和切片辅助线 > 在 ActionScript 中使用 9 切片缩放 | |||
在下面的示例中,将使用绘画工具绘制 300 x 300 像素的方形,并使用 9 切片缩放来调整该方形的大小。该方形分为九个较小的方形,每个约为 100 像素宽,100 像素高。调整方形的大小时,除角之外的每个段都将展开,以与指定的宽度和高度匹配。
通过 ActionScript 使用 9 切片缩放:
import mx.controls.Button;
import flash.geom.Rectangle;
var grid:Rectangle = new Rectangle(100, 100, 100, 100);
var small_button:Button = this.createClassObject(Button, "small_button", 10, {label:"Small"});
small_button.move(10, 10);
small_button.addEventListener("click", smallHandler);
function smallHandler(eventObj:Object):Void {
my_mc._width = 100;
my_mc._height = 100;
}
var large_button:Button = this.createClassObject(Button, "large_button", 20, {label:"Large"});
large_button.move(120, 10);
large_button.addEventListener("click", largeHandler);
function largeHandler(eventObj:Object):Void {
my_mc._width = 450;
my_mc._height = 300;
}
var toggle_button:Button = this.createClassObject(Button, "toggle_button", 30, {label:"scale9Grid=OFF", toggle:true, selected:false});
toggle_button.move(420, 10);
toggle_button.setSize(120, 22);
toggle_button.addEventListener("click", toggleListener);
function toggleListener(eventObj:Object):Void {
if (eventObj.target.selected) {
eventObj.target.label = "scale9Grid=ON";
my_mc.scale9Grid = grid;
} else {
eventObj.target.label = "scale9Grid=OFF";
my_mc.scale9Grid = undefined;
}
}
前面的代码分为五个部分。第一部分代码导入两个类:mx.controls.Button(Button 组件类)和 flash.geom.Rectangle。第二部分代码创建一个新的 Rectangle 类实例,并将 x 和 y 坐标指定为 100 像素,将宽度和高度也指定为 100 像素。此矩形实例用于为后面创建的影片剪辑形状设置 9 切片缩放网格。
下一步,您将创建一个新的 Button 组件实例,并为其给定实例名称 small_button。只要单击此按钮,前面创建的影片剪辑便重新调整为 100 像素宽和 100 像素高。第四部分代码动态创建一个名为 large_button 的新 Button 实例,单击该实例时,将把目标影片剪辑调整为 450 像素宽和 300 像素高。最后一部分代码创建一个新的 Button 实例,用户可以将其切换为打开或关闭。当该按钮处于打开状态时,将应用 9 切片网格。如果按钮处于关闭状态,则禁用 9 切片网格。
此代码示例在舞台上添加并定位三个 Button 组件实例,并为每个按钮创建事件侦听器。如果单击禁用了 9 切片网格的 Large 按钮,则可以看到图像扭曲,呈现拉伸效果。通过单击切换按钮启用 9 切片网格,然后再次单击 Large 按钮。因为已启用了 9 切片网格,左上角的圆形应不再显示为扭曲。
|
|
|
|