欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 多媒体动画 >> Flash教程 >> Flash基础教程 >> 教程正文

  没有公告

教程: Flash教程-基础教程-Flash MX 新的闪烁世界(第九天) 更多...
教程: Flash教程-基础教程-Flash MX 新的闪烁世界(第九天)


Flash MX – 新的闪烁世界(第九天)

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()


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

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


(图2)

属性:

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

useHandCursor = true;

enabled = true;


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

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的应用性。

源代码:

http://www.dnvs.net/tutorial/flash_mx/day9.fla

(最后感谢网友飘血赞助dnvs.net超级快空间,我以后会放置我的作品在上面)

Tips:

Button对象的getDepth其实也就是MovieClip的getDepth(代码号全为105)。



教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    3DsMAX实例制作:三维玻璃灯泡

    3dmax在线教程--蝴蝶

    3ds max时尚水晶鞋

    精彩Flash制作风吹草动效果动画

    教程: 3DS Max-设计实例-三维虚拟…

    3dmax7.0教程--火焰特效

    绘画技巧:Flash绘制人头造型

    3ds max 室内设计---室内效果图
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网