通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网络媒体>>flash>>正文 新版上线![旧版]
注:打开慢时请稍等

体验flash mx(9):button对象

http://www.iyit.net  日期:2006-5-27 15:17:04  来源:网络转载   点击:
参加讨论

  flash mx的出现让我们看到了实现问题的各种捷径,而且内部对象全部object化,而其中一个让人兴奋的对象就是button object——曾经是不可programmable(as控制)的顽固分子之一。

  button对象是object对象的继承(言下之意即是所有object的属性方法都可以使用),现在已经可以和movieclip一样可以有自己的instance name属性,同样在设置movieclip的instance name的propertyinspector面板内设置(ctrl+f3,图1)。

(图1)

  button的instancename可以看作为一个指针id,指向被action编程操作movieclip;当然,逆向地,动态产生的movieclip如果具有了使用了button对象的方法,也即是“变成”了button对象的指针id。

  我们做两个例子来看看:

  1) 手动制作的button。通常,在编程风的跟随下,很多人已经走入了编程的误区,就是无论什么都主张编程(不要学我哦,我写教程而已),其实解决问题需要在速度和效率间寻找那个临界点,如果你觉得自己手动速度更快一些就可以用手动来做,例如图1的按钮就是很简单的用一个rectangle tool做出来的button,并且给于instance name“btn1”。

  2) 虽然手动在某种情况下是非常直观而且迅捷的,但是我们也看看另一个做法:

  movieclip.prototype.makeboxv2 = function(x, y, l, w) {
   this.lineto(x, y+w);
   this.lineto(x+l, y+w);
   this.lineto(x+l, y);
   this.lineto(x, y);
  };

  with (btn2) {
   moveto(120, 180);
   beginfill(0x333333, 100);
   linestyle(.1, 0x333333, 100);
   makeboxv2(120, 180, 65, 16);
   endfill();
  }

  改进的makeboxv2支持长和宽的设定,这样可以实现制作长方形;程序动态产生一个btn2,并且用粗度.1并且用色码333333的颜色填充颜色代码为333333的65x16的长方形区域,这样就有了形成一个button的前提。

  接着,赋予button的属性,即把button的事件给于movieclip:

  btn2.onrollover=function(){
   this.myclr=new color(this);
   this.myclr.setrgb(0xdddddd)
  }

  btn2.onrollout=function(){
   this.myclr=this.myclr.setrgb(0x333333);
  }

  接触过flash 5的朋友也许一下就看到里面用到了color对象,这个对象在flash mx没有太大的改进,所以我们也就不多说它;把onrollover鼠标浮动事件的handler写为一个function,并设置这个按钮的颜色为发亮的0xdddddd;由于鼠标不会在浮动上之前就会有rollout,所以把初始化color对象的语句可以写入onrollover事件。

  测试一下两个不同实现的结果:

(图2)

  下面介绍button对象的属性、方法等。

  button对象的属性:

  button对象在默认状态下的属性是:

  usehandcursor = true;
  enabled = true;

  usehandcursor在true状态下是当鼠标移动上来时显示手形图像,反之保持鼠标箭头状态,说到enabled,就直接影响button的状态了,默认状态总是true,否则当前不响应用户鼠标事件,这个在不需要用户响应的时候十分有效。

  button对象的方法:

  button对象的方法很简单,只有getdepth一个,目的是获取目标button的level:

  trace(btn2.getdepth());

  tab键关联

  在处理成组的很多button 同时存在时,会遇到按tab键按钮间组内切换的情况,在flash mx中会把需要切换的button按照tabindex顺序排列:

  button.prototype.onkillfocus=function(){trace("kill focus"+this._name)}
  btn1.tabindex=2
  btn2.tabindex=3
  btn1.tabenabled=btn2.tabenabled=true

(图3)

  试验的结果发现了问题,在有手动和程序实现的button同时存在的时候,tab并不起什么作用,而在无手动button的时候却只能使tabindex和tabenabled起作用,但killfocus毫无响应,可见程序作的按钮的可靠性。

  btn2.tabenabled=true
  btn2.tabindex=3

(图4)

  button对象大概就是这个样子了,值得高兴的是可以用程序作button了,不过程序和设计总是有个点,那个点的把握就决定着flash mx的应用性。

  感谢dnvsystem,源代码:http://www.dnvs.net/tutorial/flash_mx/day9.fla

  注:button对象的getdepth其实也就是movieclip的getdepth(代码号全为105)。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:flash倒影字的制作(入门教程)
下一篇:全文字解析如何制作按钮操控的动态文本
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 浮动面板使用大全(2)
flash 鼠标指针
flash 替换外部图片或声音
flash 物体的淡出效果制
flash 引导线的使用
flash常用mc属性控制(1)
flash 神奇遮罩之原理篇(1)
flash mx2004入门与进阶实例——mtv实
flash mx2004入门与进阶实例(1)
flash 神奇遮罩之原理篇(2)
优秀公益广告作品欣赏(8)
java数据类型转换
windows xp专业版iis连接数的更改
新开放qq免费挂级网站
优秀公益广告作品欣赏(7)
免费在qq上看在线电影电视听音乐
office2007简体中文版浮出水面 美图抢
qq最新版下载 2006 beta2 体验新感受 
qq珊瑚虫外挂4.0版本发布!
web服务器配置全攻略(三)
dreamweaver mx 2004从零开始(1)
利用css改善网站可访问性
如何让mm的脸通透可人
msn8.0下载
asp 五大高效提速技巧
如何在win20003中更好的玩游戏
qq收费头像免费使用的方法 
微软将在华推分期付款,充值卡pc 可低价
 amd处理器am2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息