WebGame UI 制作之使用 对位图进行九切片(九宫格)缩放

做过网页的朋友,应该知道 九宫格 的魅力所在,它能大大降低生成图片的大小,那么对于WebGame UI 制作也是有帮助的,一般UI制作使用Flash CS 来制作,

这边有朋友做了很详细的介绍,不再重复造车,感兴趣的的朋友,可以看看,地址如下:

http://riaoo.com/?p=1077

上面的博客中,还带视频介绍的,相信大家很容易就能看明白,那么对于真正制作,还有朋友写了JSFL来快捷的切 九宫格,地址如下:

http://www.itamt.com/2010/03/slice9bitmap_jsfl/

JSFL的使用方法,自己百度吧。

上面的地址中的JSFL应该是下载不了了,我从作者的谷歌code里,下载了下来,方便需要的朋友下载:

//[Flash提供的js API并没有可以获取当前编辑元件的方法, 确保在库中选中当前编辑的元件] 选中图片, 运行该脚本, 会把图片根据该元件的scale9Grid打散成9个部分, 并各自成组.
//tamt 2009.11.12 ver0.1
//TODO:Flash提供的js API并没有可以获取当前编辑元件的方法.

var curItem;
var rect = {l:0, r:0, t:0, b:0};//{left:0, right:0, top:0, bottom:0};
var items = fl.getDocumentDOM().library.getSelectedItems();
for(var i=0; i<items.length; i++){
    curItem = items[0];
    if(curItem.scalingGrid){
        rect.l = curItem.scalingGridRect.left;
        rect.r = curItem.scalingGridRect.right;
        rect.t = curItem.scalingGridRect.top;
        rect.b = curItem.scalingGridRect.bottom;

        //traceObj(rect);

        var doc = fl.getDocumentDOM();
        var imgItem = doc.selection[0];
        if(imgItem.instanceType == "bitmap"){
            doc.breakApart();

            //左上角打组
            doc.setSelectionRect({left:-500, right:rect.l, top:-500, bottom:rect.t}, true, false);
            doc.group();
            //右上角打组
            doc.setSelectionRect({left:rect.r, right:1000, top:-500, bottom:rect.t}, true, false);
            doc.group();
            //右下角打组
            doc.setSelectionRect({left:rect.r, right:1000, top:rect.b, bottom:1000}, true, false);
            doc.group();
            //左下角打组
            doc.setSelectionRect({left:-500, right:rect.l, top:rect.b, bottom:1000}, true, false);
            doc.group();
            //中间部分打组
            doc.setSelectionRect({left:rect.l, right:rect.r, top:rect.t, bottom:rect.b}, true, false);
            doc.group();
            //左边部分打组
            doc.setSelectionRect({left:-500, right:rect.l, top:rect.t, bottom:rect.b}, true, false);
            doc.group();
            //右边部分打组
            doc.setSelectionRect({left:rect.r, right:1000, top:rect.t, bottom:rect.b}, true, false);
            doc.group();
            //上边部分打组
            doc.setSelectionRect({left:rect.l, right:rect.r, top:-500, bottom:rect.t}, true, false);
            doc.group();
            //下边部分打组
            doc.setSelectionRect({left:rect.l, right:rect.r, top:rect.b, bottom:1000}, true, false);
            doc.group();
        }else{
            alert('please select a bitmap.');
        }
    }
}

//debug function
function traceObj(obj){
    fl.trace("------------");
    for(var prop in obj){
        fl.trace(prop + ": " + obj[prop]);
    }
    fl.trace("------------");
}

好了,希望对你有帮助。

在AS3环境下,可以通过著名的ScaleBitmap来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值