Flash小技巧:巧用Bitmap类制作按钮

按钮|技巧

最近在制作flash时需要制作一个可以随意设定宽度的按钮组件.为了保证按钮样式不变形,一般都会采用将按钮分成几个mc的方法来制作.但其实,如果对按钮的动态效果要求不多的话,完全可以使用Bitmap类来制作.下面是将按钮的一个状态分解开来.一般的思路是做为三个MC,然后在改变宽度是,动态改变中间mc的宽度就可以了。但是这样的话,对于元素的制作就比较麻烦.使用bitmap类可以直接将一张图片分为三个MC后生成.在批量使用时,效率提高了不少.

方法:

/**
 * date  : 2007.2.6
 * author : Frank
 * site  : http://www.2solo.net/log
 */
import flash.display.*;
import flash.geom.Rectangle;
import flash.geom.Point;
install_img("mT_over_bmp", 200, 158, 5, bmp_mc);
function install_img(image_url, center_width, face_width, bar_left, tar_mc) {
 //image_url:目标图片路径
 //center_width:整体宽度
 //face_width:初始位图宽度
 //bar_left:边侧mc宽度
 //tar_mc:所要加载的容器地址
 ///定义原始
 var linkageId:String = image_url;
 var myBD:BitmapData = BitmapData.loadBitmap(linkageId);
 if (tar_mc == undefined || tar_mc == "") {
  tar_mc = this;
 }
 //bmp_mc.attachBitmap(myBD, this.getNextHighestDepth());                                       
 face_width = face_width-2*bar_left;
 ///新建MC
 tar_mc.center_mc.removeMovieClip();
 tar_mc.left_mc.removeMovieClip();
 tar_mc.right_mc.removeMovieClip();
 var center_mc:MovieClip = tar_mc.createEmptyMovieClip("center_mc", tar_mc.getNextHighestDepth());
 var left_mc:MovieClip = tar_mc.createEmptyMovieClip("left_mc", tar_mc.getNextHighestDepth());
 var right_mc:MovieClip = tar_mc.createEmptyMovieClip("right_mc", tar_mc.getNextHighestDepth());
 center_mc._x = bar_left;
 left_mc._x = 0;
 right_mc._x = center_width-bar_left;
 ///新建图片数据
 var myBD_C:BitmapData = new BitmapData(face_width, myBD.height, true, 0x00FF0000);
 var myBD_L:BitmapData = new BitmapData(bar_left, myBD.height, true, 0x00FF0000);
 var myBD_R:BitmapData = new BitmapData(bar_left, myBD.height, true, 0x00FF0000);
 ///拷贝图片
 myBD_C.copyPixels(myBD, new Rectangle(bar_left, 0, face_width, myBD.height), new Point(0, 0));
 myBD_L.copyPixels(myBD, new Rectangle(0, 0, bar_left, myBD.height), new Point(0, 0));
 myBD_R.copyPixels(myBD, new Rectangle(myBD.width-bar_left, 0, bar_left, myBD.height), new Point(0, 0));
 //加载图片
 center_mc.attachBitmap(myBD_C, this.getNextHighestDepth());
 left_mc.attachBitmap(myBD_L, this.getNextHighestDepth());
 right_mc.attachBitmap(myBD_R, this.getNextHighestDepth());
 ///调整距离
 center_mc._width = center_width-2*bar_left;
}
stop();

时间: 2025-01-04 15:49:05

Flash小技巧:巧用Bitmap类制作按钮的相关文章

巧用Bitmap类制作按钮_Flash教程

最近在制作flash时需要制作一个可以随意设定宽度的按钮组件.为了保证按钮样式不变形,一般都会采用将按钮分成几个mc的方法来制作.但其实,如果对按钮的动态效果要求不多的话,完全可以使用Bitmap类来制作.下面是将按钮的一个状态分解开来.一般的思路是做为三个MC,然后在改变宽度是,动态改变中间mc的宽度就可以了.但是这样的话,对于元素的制作就比较麻烦.使用bitmap类可以直接将一张图片分为三个MC后生成.在批量使用时,效率提高了不少. 方法: 复制代码 代码如下: /**  * date  :

Flash小技巧之Object.watch

object|技巧 Object.watch是用来监听对象属性的变化,但是对getter/setter属性是不起作用的. 下面我们来测试以下: 在场景中加入一个input text,然后变量命名为t 之后在第一帧加入以下代码: function myvarWatch(prop, oldval, newval, userData){ trace(prop+" has changed!!"); trace(newval); return newval;}_root.watch("

一起谈.NET技术,Silverlight 游戏开发小技巧:冲击技能特效制作

玩游戏的时候,肯定对以角色为中心释放的冲击波肯定特别有震撼力,前面使用Silverlight的变换完成了升级特效和传送点特效,这次制作以中心为原点冲击的发散特效,相信效果会非常的不错. 首先仍然是建立一个控件,这个控件名字,我暂时命名为Shockwave.xaml,并且准备两张作为冲击波效果基础图像,这里面的图片可以随便更换,可以拜托美术的兄弟制作一下,如果你有兴趣,可以了解有关软件的使用方法,当然了,使用Blend也能做出来,只不过考虑麻烦程度,还是先以简单的为主,我找来两张图片简单做了处理.

Silverlight 游戏开发小技巧:冲击技能特效制作

玩游戏的时候,肯定对以角色为中心释放的冲击波肯定特别有震撼力,前面使用Silverlight的变换完成了升级特效和传送点特效,这次制作以中心为原点冲击的发散特效,相信效果会非常的不错. 首先仍然是建立一个控件,这个控件名字,我暂时命名为Shockwave.xaml,并且准备两张作为冲击波效果基础图像,这里面的图片可以随便更换,可以拜托美术的兄弟制作一下,如果你有兴趣,可以了解有关软件的使用方法,当然了,使用Blend也能做出来,只不过考虑麻烦程度,还是先以简单的为主,我找来两张图片简单做了处理.

Ubuntu每日小技巧 – 深入理解应用菜单和按钮

Ubuntu是一款很不错的操作系统.它基本上可以做到任何现代操作系统能做的事情,甚至有时候能做的更好.如果你是一个ubuntu新手,那么你现在还有很多不知道的事情.对于那些专家级用户来说十分普通的事情可能对你来说可能就不太普通了,因此这个"ubuntu每日小技巧"系列旨在帮助你和新用户轻松设置管理ubuntu. Ubuntu有一个菜单栏.这个主菜单栏是在屏幕的顶端黑色条状栏,其包含了状态菜单或指示器和时间日期,音量键,应用的菜单和窗口管理按钮. 窗口管理按钮在主菜单(黑色条状栏)的左上

闲扯一些Flash小技巧

技巧 内容和界面的分离,代码和动画的分离,实在太重要了. 比如今天遇到一个客户,要求修改N久前的一个连接.这下就太麻烦了. 如果能把连接之类的东西存放在XML中,Flash每次启动就把XML读入(并且可以放在loading处,保证字符串完美读入,否则按钮按下去就连接到undefined了,呵呵) 再者就是代码和动画的分离.我认为封装起来还是最重要的.由于我不太习惯2.0,所以还是喜欢用1.0对MC安装prototype,反正不是很大的项目,应该够了. 所有的文本,比如,错误提示,都放到一个字符串

Flash小技巧之allowScriptAccess

access|技巧 别以为嵌入Flash的html不重要,有时候小问题也会引发大"骚乱的"比如:     <param name="allowScriptAccess" value="sameDomain" />使用 allowscriptaccess 使 Flash 应用程序可与其所在的 HTML 页通信.此参数是必需的,因为 fscommand() 和 getURL() 操作可能导致 JavaScript 使用 HTML 页的权限

PowerShell小技巧之实现文件下载(类wget)_PowerShell

对Linux熟悉的读者可能会对Linux通过wget下载文件有印象,这个工具功能很强大,在.NET环境下提到下载文件大多数人熟悉的是通过System.Net.WebClient进行下载,这个程序集能实现下载的功能,但是有缺陷,如果碰上类似于-/scripts/?dl=417这类的下载链接将无法正确识别文件名,下载的文件通常会被命名为dl=417这样古怪的名字,其实对应的文件名是在访问这个链接返回结果的HTTP头中包含的.事实上微软也提供了避免这些缺陷的程序集System.Net.HttpWebR

Excel表格中防范录入错误的数据输入提示小技巧

  Excel表格中防范录入错误的数据输入提示小技巧          很多时候,咱们制作的表格需要其他人来填写,但是填写人往往不清楚填写规则,最后填写结果就是一团糟. 如果当鼠标点击某个单元格时,有输入的提示,岂不是很好? 你知道如何设置出这样的效果吗?看动画演示吧-- wps教程 word教程 Excel教程