肛乳头肥大 会腹泻吗:水晶按钮制作和应用

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 08:05:37
Flash新手入门教程:水晶按钮制作和应用
分类:flash入门教程
Flash新手入门教程:水晶按钮制作和应用
写给FLASH初学者的——水晶按钮制作教程及按钮的使用方法
本人学习Flash也才两个多月,还很菜的哈,这个教程实际上只是本人学习Flash的一点心得,写出来给初学Flash的朋友,可能对于初学者会有一点点帮助吧。先看一下效果图吧:

下面开始制作:
1. 新建一个空白的Flash文档。
2. 按ctrl+F8,新建一个图形元件。选择椭圆工具,无笔触,填充色选黑色,按住Shift键,在舞台上画一个正圆。用选择工具在正圆上点一下,打开属性面板,将宽和高都设成60,点窗口菜单,打开对齐面板,点一下“相对于舞台”下面的小框框,然后点“水平中齐”和“垂直中齐”就是所谓的“全居中”了。再把图形放大到400% ,将图层1命名为“球体”,上锁。 如下图:
   
   
3. 在球体层上面新建一图层,命名为“上光”,椭圆工具,笔触白色,无填充色,在舞台的球体中画一个椭圆形,并移动到球体正上方的位置。(先用选择工具点一下 “上光”层的第1帧,然后按键盘上的方向键,可以很轻松准确的把这个画的椭圆移到合适的位置)。如下图:
   

接着点“窗口”——混色器,在颜色混色器面板中点一下填充框,在“类型”中选择“线性”。
左色标#FFFFFF,Alpha=100%,右色标#FFFFFF,Alpha=0%,就是让这个椭圆中的颜色从全白到透明渐变。用颜料桶工具在椭圆中点一下,再用颜色渐变工具进行调整,如下图:
   

用选择工具,先在旁边空白处点一下,再在椭圆的笔触上点一下,使其成为蚁线,按键盘上的Delete键,删除。将本层上锁。
4. 在“上光”层上面新建一层,名为“下光”,用椭圆工具在球体的下方画一个椭圆形。用同样的方法设置渐变,如下图:
   
接着也用同样的方法,删除这个椭圆的笔触线。将本层上锁。
5. 在最上面新建一图层,名“花”。椭圆工具:无笔触,填充色为白色,在下光中画个小椭圆,并用任意变形工具调整好方向,移到下面左图所示的位置。
   
再用椭圆工具或直线工具(这次是红色笔触,无填充色)画出如上面右图所示的形状。(用红笔触是为了明显,无填充色是因为画好后要进行渐变)。
6. 在“花”图层的第一帧点一下,看到图中红线条变成分离状态,打开混色器面板,“类型”选择“放射状”,还是左色标全白#FFFFFF,Alpha=100%,右色标FFFFFF,Alpha=0%,用“颜料桶工具”在这五个图形中各点一下。再用“颜色渐变工具”仔细调整,如下图:
    
每一个图形都要各自调过哦!然后用上面的方法删除所有的笔触红色线条 。现在是这样的:
   
至此所有的图形都画好了。看上去很不象是吧,呵呵,没关系,下面接着来。
7. 这一步很关键。顺便说一下,我原来这个水晶按钮是在PS教程中学画的,在PS中画好这个“花”图后是用混合模式“叠加”,效果很好。可是在FLASH中没有混合模式,以前我也用FLASH画过这个按钮的,画到这里就没办法了。昨天学习用FLASH画云彩时学到了使用滤镜的方法,我就试着在这里用上看看,结果发现效果也不错。呵呵,罗嗦了哈。言归正传,下面接着来吧:
在时间轴中把“上光”、“下光”和“花”图层解锁,注意“球体”层还是要锁住的哦。用选择工具框选舞台上的整个图形,这时可以看到上面的三个图层的第一帧都成黑色的,图形中除了黑色的球体外都成麻点状。保持这种状态(这时鼠标不要点其它地方),点菜单中的“修改”——“转换成元件”,名称改为“花”,类型选“影片剪辑”!!!接着打开属性面板,点“滤镜”——模糊——模糊值设为2,品质设为高。把图形还原到100%看看吧,现在看起来是不是好看顺眼多了啊。
 
这时,时间轴上的中间两层的第一帧都是空的了,因为刚才框选后转换为影片剪辑元件时已经都自动被合并到“花”层里了。把这两个图层删除了吧,留着也没用了哈。现在你到库中看看,会发现多出来了一个名为“花”的影片剪辑。到库中把那个图形元件1改名为“黑按钮”现在第一个黑色的水晶按钮已经做好了。
8. 前面的辛苦已经过了,下面就很轻松了。在库中右键点“黑色按钮”图形元件,跳出来的对话框中选“直接复制”——名称改为“红按钮”,其他不变,点确定。双击库中的这个“红按钮”,一定要先双击这个红按钮哦,让它成为编辑状态,对了,还要把时间轴上的“花”层锁上,把“球体”层解锁,点一下“球体”图层的第 1帧,下面接着怎么做大家心中都有数了吧,改变球体的颜色哈!点一下工具面板中的颜料桶,在跳出来的颜色样本中选择自己喜欢的颜色,点一下,球体的颜色就跟着变了,也可以在混色器面板中更改颜色。看下图:
      
现在可以用同样的方法随心所欲的轻松做出各种不同颜色的水晶按钮了哈。
做好后要记得保存喔。
花的形状以及上、下光的形状大家都可以自由发挥的,不一定要按这个样子,自己觉得好看就行,我只是作个示范。有兴趣的朋友可以学一下,对于初学者可能从中也会学到一些东西的。
二.下面介绍简单的FLASH中按钮的使用方法:
前面画好的“水晶按钮”实际上还只是按钮中的一个图形,或者说是一个配件,要使用它,首先要组装“按钮“。
1.按Ctrl+F8——新建元件,名称改为:开始;类型:按钮,确定。这里时间轴就变成了下图的形状:

现在从库中把任一个刚画好的水晶按钮图形拖入到舞台中,相对于舞台全居中对齐。然后右键点击“指针经过”下面的空白框框——插入空白关键帧,再从库中拖入一个不同颜色的水晶图形,同样全居中对齐。“按下”帧因为使用的时间非常短,就是按钮左键按下的瞬间,所以只要在上面右键点击,插入“关键帧”也就是复制 “指针经过”里的图形就可以了。最后右键点“点击”——插入空白关键帧,在舞台中间用矩形工具,无笔触,填充任意色,画一个比水晶图形稍大些的方框,(这是鼠标点在这个方框内都能起到按钮的控制作用)。也同样相对于舞台全居中。在图层一上面新建图层二,点一下“弹起”帧,在舞台中红色水晶图形下面写上红色的Play,右键点击“指针经过”帧——插入关键帧,把字的颜色改为和图形一样的蓝色,在“按下”帧插入关键帧。这样这个“开始”按钮就组装好了,如下图:
   
   
   
用同样的方法组装一个“停止”按钮。
2.按钮控制场景的开始和停止的简单做法:
(1) 进入场景1,在场景的图层1第2帧插入空白关键帧,将已做好的影片剪辑拖入场景(放在第2帧上),让第1帧成为空白帧。(当然也可以在图层1的第一帧拖入一个图形,作为封面哈)。在第1帧上按F9,在出现的动作面板上加代码 stop();

(2) 在图层1上面添加两个新图层,在图层二第1帧拖入开始按钮,在图层三第1帧拖入停止按钮,分别放在合适的位置。在它们的第2帧分别插入普通帧。

点一下场景中的红色开始按钮,在属性中给开始按钮填上实例名 play_btn,

同样点一下场景中的停止按钮,在属性中给停止按钮填上实例名 stop_btn.
(3) 点一下场景上的开始按钮,按F9,在动作面板中给开始按钮上写代码:
On(release){
gotoAndStop(2);
}
点一下场景上的停止按钮,按F9,在动作面板上给停止按钮上写代码:
On(press){
gotoAndPlay(1);
}
(4) 在最上面添加新图层,在第1帧上写代码 stop(); 删除第2帧。

好了,测试影片吧。
提示:每次做动画时尽量把做好的影片剪辑归到一个影片剪辑之中,这样在场景中就只有一个影片剪辑,这样好控制。
第一次学着写教程,不知道初学的朋友是不是能看得明白,有不明白的地方请跟帖上来问,版主们和我都会帮着解答的。谢谢您耐心看完这个很菜的FLASH教程。谢谢了!
Flash AS2入门教程第七课:影片剪辑第一节创建影片剪辑
浏览:26 | 发布于:2009.02.12 | 分类:flash入门教程
Flash AS入门教程第七课:影片剪辑第一节创建影片剪辑
影片剪辑
影片剪辑就象一个独立的swf一样,运行时不受主时间轴的限制,它有它自已的时间轴。在AS中影片剪辑为 MovieClip 类类型的一个对象。您可以使用 MovieClip 类的属性和方法控制影片剪辑运行时的外观和行为。因此,在下文中将影片剪辑简称为:mc
第一节 创建MC
一.在创作环境中创建MC:
在创作环境中创建MC的方法是:点击“插入”菜单-“新建元件”,在弹出的对话框中为该MC命名,在下面的类型选择中选“影片剪辑”,确定。现在就进入了MC的编辑环境,在这里制作你的MC。制作完成后,点击场景选项卡,则完成了MC的创建。打开库面板,可以看到刚刚创建的MC已在库中。为了能在AS中操作该MC,那么可有两种方式将MC加载到舞台上:一是用鼠标从库中将MC拖到舞台上,然后打开属性面板,为该MC实例命名,比如:mymc_mc。另一种方法是:
在运行中从库中加载MC:
要在运行中从库中加载MC,首先要设置MC的连接标识:在库中右击MC,点击连接,在弹出的对话框中,在“为ActionSprit导出“前的方框中打钩,然后在上面标识符栏内取一个名字,比如:mymc.
attachMovie()方法
有标识符后就可以在运行时用MC的attachMovie()方法加载MC。
格式:MC. attachMovie(“标识符”,“新名称”,深度);
这里MC是指要加载MC的MC,一个MC中是可以加载另一个MC的,当然也可以是主时间轴,如果代码是写在帧上,则常用this或_root来代表主时间轴,推荐使用this,也可以省略不写。如果代码是写在元件上,要主场景加载mc就必须用:_root或this.perent.
getNextHighestDepth() 方法:
深度相当于层的概念,深度的数字越大,则越在上面。如果深度相同,那新加载的对象就会覆盖原来相同深度上的对象,在后面我们会发现这是一个十分有用的东西。在用attachMovie()方法加载MC时,怎样却定深度呢?深度一般可以从0开始,从上加。也有问题,你说我记不住现在深度是多少了,万一用重了,不是就将原来那个对象删了吗?于是getNextHighestDepth() 方法运应而生。
getNextHighestDepth() 方法确定传递给attachMovie()方法的深度值,以确保 Flash 将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象的前面。于是我们上面已在库中设好标识符的MC就可以这样加载到场景中:
this. attachMovie(“mymc”,”mymc_mc”,this.getNextHighestDepth());
用attachMovie()方法加载的MC,会被加载到舞台上(0,0)的位置,很显然这不是我们想要的结果,所以加载后往往要设置MC的_x,_y属性,以使它呆在我们希望它呆的地方。
下面来做一个练习:
新建一个MC,居中画一个圆,在第50帧插入关键帧,将圆向右移500象素,创建补间动画。在库中右击圆元件,点击“连接”,在弹出的对话框中,在“为ActionSprit导出“前的方框中打钩,然后在上面标识符栏内取一个名字:mymc.现在回到主场景,右击第一帧,点“动作”,在动作面板中输入:
this. attachMovie(“mymc”,”mymc_mc”,this.getNextHighestDepth());
mymc_mc._x=50;
mymc_mc._y=200;
测试影片,会看到库中的MC被加载到舞台上,一个圆从屏幕的左边向右边移动。
二.在运行时创建MC
createEmptyMovieClip()方法
在运行时可用:createEmptyMovieClip()方法创建一个空的MC,这常常用于需用AS绘图的代码中。
格式:MC. createEmptyMovieClip(”名称“,深度);
例:this.createEmptyMovieCli(”mymc_mc”,this. getNextHighestDepth());
三.复制MC
duplicateMovieClip()方法:
在运行时复制一个MC。
格式:MC.duplicateMovieClip(“新名称“,深度)
比如上面我们已建好的一个MC,mymc_mc,现在要复制它,这样写:
Mymc_mc.duplicateMovieClip(“mymc1_mc”,this.getNextHighestDepth());
duplicateMovieClip()全局函数:
这是一个全局函数而不是MC的方法,虽然它们的作用是一样的,但格式有所不同。
格式:duplicateMovieClip(“要复制的MC的名称”,“新名称”,深度);
仍然以mymc_mc为例,要复制它,这样写:
duplicateMovieClip(“mymc_mc”,“mymc1_mc”,this.getNextHighestDepth())
四.删除加载的MC
removeMovieClip()方法:
对于用attachMovie()方法加载的,用duplicateMovieClip复制的和用createEmptyMovieClip()创建的MC,可以用removeMovieClip()方法移除。
来看看上面我们做那个练习,测试时,小球不停地反复地从左向右运动,现在我们让小球只运动一次,即当小球到达右边时,移除小球MC。
做法:在库中双击小球MC,进入小球元件编辑区,在第50帧上,点右键,点动作,在帧面板中输入:
this. removeMovieClip();
测试影片,当小球移动右边,第50帧时,小球被移除了。
五.几个常用的属性:
MC有很多属性,将在后续课程中陆续介绍,这里先介绍几个常用的属性:
_x,_y:MC在其父级容器中的坐标位置。
_alpha:透明度,其值为0-100;
_rotation:旋转的角度。
_height:高度
_width:宽度
_visible:MC是否可见,些值为true或1,则MC可见,如果为false或非1则不可见。
_xmouse:鼠标位置的x坐标
_ymouse:鼠标位置的y坐标
_xscale:MC宽度的百分比例,可用于设置MC的大小。
_yscale:MC高度的百分比例,可用于设置MC的大小。
六.综合练习:夜色中的荧火虫
下面通过一个夜色中的荧火虫的制作,作为本节内容的综合练习。
首先新建一flash文档,新建一MC,取名为“荧光”。 用椭圆工具,禁止笔触,绿色填充,居中画一个小圆,2个像素大小就行。居中对齐。点击“修改”-“形状”-“柔化填充边缘“,距离10,步骤5,方向扩展。在第10帧插入关键帧,将圆向下离一段距离。创建补间动画。在库中右击荧光元件,设置标识符为:mymc.
回到主场景,打开帧动作面板输入:
i=0;
onEnterFrame = function() {
if(i<50){
this. attachMovie("mymc","mymc"+i,i);
mymc_mc = eval("mymc"+i);
mymc_mc._x=random(450)+50;
mymc_mc._y=50+random(300);
mymc_mc._rotation = random(360);
i++;
}else {
i=0;
}
}
OK,测试影片。
上面代码通过onEnterFrame事件,使每一过帧从库中加载一次荧光元件,并用一个i变量计数,使荧光数量不超过50。this. attachMovie("mymc","mymc"+i,i);这一句加载语句中的深度用了变量i,而i将会是从0到49,然后回到0,周而复始,这样第二轮的0-49将的深度就与第一轮的相同,上面我们说到了,这时新加载的就会覆盖原来的,这就实现了荧光的更新,同时也保证了荧光的总数量为50个。前面我们说深度的这一特性将会很有用,在这里就用上了。荧光的位置和旋转角度都采用random()来随机产生,这样就实现了,荧光随机出现的舞台上,运动方向也是随机的。
大家可以扩展一下,将加载的荧光元件的_x属性设为:_xmouse+random(50),将_y属性设为:_ymouse+random(50),测试看一看,一个鼠标跟随效果就出来了。
上面练习是用attachMovie()从库中加载元件的方式实现的,用duplicateMovieClip()复制的方法也是可以实现的,方法略有不同:
将库中的灾光元件拖到舞台上,任一位置,打开属性面板,将实例名称设为:mymc_mc.帧动作上的代码为:
mymc_mc._visible = false; //首先将舞台上的荧光元件隐藏。
i=0;
onEnterFrame = function() {
if(i<50){
duplicateMovieClip (“mymc_mc”,"mymc"+i,i);
mymc_mc = eval("mymc"+i);
mymc_mc._x=random(450)+50;
mymc_mc._y=50+random(300);
mymc_mc._rotation = random(360);
i++;
}else {
i=0;
}
}
作业:
1.夜色下的荧火虫的制作
2.用本节所讲内容制作一下雨或下雪效果。
Flash AS2入门教程第七课:影片剪辑第二节加载swf文件
浏览:26 | 发布于:2009.02.12 | 分类:flash入门教程
Flash AS入门教程第七课:影片剪辑第二节加载swf文件
第二节 加载和卸载swf文件
上一节中,我们已经能创建MC,本节我们将介绍加载外部swf文件的方法。
loadMovie函数及MC的loadMovie()方法:
使用 loadMovie() 函数可以在播放原始 SWF 文件时,将 SWF、JPEG、GIF 或 PNG 文件加载到 Flash Player 中的影片剪辑中。加载的图像或 SWF 文件的左上角与目标影片剪辑的注册点对齐。
格式:loadMovie(“要加载的swf文件或图片“,目标影片剪辑);
要加载的swf文件或图片可以来源于网络,书写格式为:http://....
可以来源于本地硬盘上的文件系统,书写格式为:file:///.......
如果要加载的swf文件或图片与fla文件在同一目录下,则直接写文件名。
目标影片剪辑可以是任何影片剪辑,也可以是主场景,加载后,目标影片剪辑将被替换成加载的文件。
例1:加载一个网络上的swf文件sub.swf到创建的MC中:
this.createEmptyMovieClip("logo_mc", 1);
loadMovie("http://www.jcwcn.com/sub.swf", logo_mc);
例2:加载一个本地的swf文件sub.swf到主舞台:
loadMovie("file:///d:/myflash/sub.swf", this);
例3:加载一个相同目录下的图片picture.jpg到创建的MC中:
this.createEmptyMovieClip("picture_mc", 1);
loadMovie("picture.jpg",picture_mc);
以上是loadMovie函数的写法,而MC的loadMovie()方法也一样,只写法不同,如:this.createEmptyMovieClip("picture_mc", 1);
picture_mc.loadMovie("picture.jpg");
loadMovieNum 函数
在播放原始 SWF 文件时,将 SWF、JPEG、GIF 或 PNG 文件加载到一个级别中。用法跟loadMovie一样,只是它不是指明目标影片剪辑,而加载到一个深度上。比如要加载相同目录下的swf文件myflash.swf到深度为2的级别中:
loadMovieNum(“myflash.swf”,2);
要注意的是,上一节我们介绍了,当深度相同时,新加载的对象会覆盖原来的对象。我们也以用下面一句来加载外部swf文件:
loadMovieNum(“myflash.swf”,this.getNextHighestDepth());
MovieClipLoader类
此类用于实现在 SWF、JPEG、GIF 和 PNG 文件正被加载到影片剪辑中时提供状态信息的侦听器回调。也就是说用这类加载swf文件,可以在加载过程中进行控制,如观察加载进度等。要使用MovieClipLoader类就应首先用构造函数创建一个MovieClipLoader类的实例才能操作其方法,事件,实现加载功能。如:
var mcLoader:MovieClipLoader = new MovieClipLoader();
loadClip方法:该方法的作用和用法与loadMovie()是一样的。如:
this.createEmptyMovieClip("picture_mc", 1);
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.loadClip("picture.jpg",picture_mc);
上面说到,用本类加载外部swf文件或图片可以在加载过程中加以操作,主要是通过几个事件的调用来实现:onLoadStart事件:在下载的文件的第一个字节写入硬盘后,调用。
格式: onLoadStart = function([target_mc: MovieClip]) {}
其中的target_mc为要加载外部影片的目标MC。
onLoadComplete事件:当加载的文件完全下载时调用。
格式:onLoadComplete = function([target_mc: MovieClip]) {}
onLoadInit事件:当执行加载的剪辑的第一帧上的动作时调用。
在调用此侦听器后,您可以设置属性、使用方法,还可以与加载的影片交互。
格式:onLoadInit = function([target_mc: MovieClip]) {}了解 MovieClipLoader.onLoadComplete和 MovieClipLoader.onLoadInit之间的差异非常重要。onLoadComplete事件在加载 SWF、JPEG、GIF 或 PNG 文件之后但在应用程序初始化之前被调用。此时,无法访问已加载的影片剪辑的方法和属性,因此您无法调用函数、移动到特定帧,等等。在多数情况下,最好改为使用 onLoadInit事件,它在内容已加载并完全初始化后被调用。
onLoadProgress事件:在加载过程中(即在 MovieClipLoader.onLoadStart
和 MovieClipLoader.onLoadComplete
之间时),每当正加载的内容写入硬盘时调用。
格式:onLoadProgress = function([target_mc: MovieClip], loadedBytes: Number, totalBytes: Number) {}
loadedBytes为已经加载的字节数。totalBytes为要加载的swf的总的字节数。如果在测试模式中,您试图对驻留在硬盘上的本地文件使用 onLoadProgress,则它将不能正常工作,这是因为在测试模式中,Flash Player 会将本地文件作为一个整体加载。
onLoadError事件:加载的文件未能加载时调用。出于各种原因,会调用此侦听器;例如服务器关闭、找不到文件或发生安全侵犯。
上述事件的调用方法我给你整成一个公式的模式,直接套用就行了。
MovieClipLoader类事件调用公式:
//首先创建一个MovieClipLoader对象
var mcLoader:MovieClipLoader = new MovieClipLoader();//mcLoader为自已取的名称
//然后创建一个侦听对象
var listener:O**ect = new O**ect();//listener为自已取的名称
//调用下列事件之一或多个
listener.onLoadStart = function(target_mc:MovieClip) {}
listener.onLoadComplete = function([target_mc: MovieClip]) {}
listener.onLoadInit = function([target_mc: MovieClip]) {}
listener.onLoadProgress = function([target_mc: MovieClip],
loadedBytes: Number, totalBytes: Number) {}
//MovieClipLoader对象调用侦听对象
mcLoader.addListener(listener);
//MovieClipLoader对象加载外部swf或图片
mcLoader.loadClip(“外部文件地址”,目标影片剪辑);
下面介绍MovieClipLoader类的几个方法
loadClip方法:在播放原始影片时,将 SWF、JPEG、渐进式 JPEG、非动画 GIF 或 PNG 文件加载到 Flash Player 中的影片剪辑中。
addListener(侦听对象)方法:注册一个对象,以便在调用 MovieClipLoader 事件处理函数时接收通知。
getProgress(target: O**ect)方法:返回正在通过使用 MovieClipLoader.loadClip()
加载的文件的已加载字节数和总字节数;返回一个具有以下两个整数属性的对象:bytesLoaded
和 bytesTotal。
removeListener(侦听对象)方法:删除在调用 MovieClipLoader 事件处理函数时用来接收通知的侦听器。
unloadClip(target: O**ect)方法:删除通过使用 MovieClipLoader.loadClip() 加载的影片剪辑。
下面通过一个练习来加深理解本节课所介绍的内容,主要运用MovieClipLoader类来加载外部文件加载过程中,用进度条来显示加载进度。本节的练习请保存原文件,待下一节控制时间轴后,将在本练习的基础上,完成一个播放器。
一、新建flash文档,然后在第一层画一个播放器的外形,这个我不作介绍,我画的如下图,你完全可以画得更好看一些。这里要说一说中间的播放屏幕(黑的那块)的大小问题。Flash文档默认的大小是550x400,那么这个播放屏幕也应按这个比例来画,它的大小是文档大小的80%,因此,宽为:550x0.8=440,高为400x0.8=320.将这个播入屏幕水平居中,尽量往上放,将下面多留一些地盘,以后有用。然后用变形工具点中它,将注册点移到左上角,打开属性面板,记录下它的x,y坐标备用。图层上锁。

二、新插入一图层,按下图位置放一个静态文本,内容为:“文件地址:”;再放一个输入文本,在属性面板实例名称为:url_txt.新建一按钮元件,标签为:“打开”,属性面板实例名称为:load_btn.将按钮放输入文本右边。
三、新建一MC,取名loading,用矩形工具,禁止笔触,绿色填充,画一个300x5的矩形。然后转换成MC。双击它进新的MC编辑窗口,将矩形条垂直居中,左对齐。打开属性面板,为实例名称取名为:“loadt_mc”.回到loading元件编辑窗口,将矩形元件垂直居中,左对齐。在矩形元件的上面放一静态文本,内容为:“正在加载文件,请稍候…”.在库中右击loading元件,点连接,在“为ActionScript导出“前打钩。在标识标中输入:loading,实际上那里本来就有了,不用输哈,确定。
四、好了,接下来写代码。新建一层,取名为“action”.
打开帧到作面板,输入如下语句:
load_btn.onRelease =function(){
attachMovie("loading","loading_mc",getNextHighestDepth());
loading_mc._x=80;
loading_mc._y=215;
loading_mc.loadt_mc._xscale=0;
var swfurl = url_txt.text;
var type = swfurl.substr(-3,3);
createEmptyMovieClip("swf_mc", 1);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:O**ect = new O**ect();
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loading_mc.loadt_mc._xscale=Math.floor((bytesLoaded/bytesTotal)*100);
}
listener.onLoadInit = function(swf_mc){
loading_mc.removeMovieClip();
swf_mc._x=60;
swf_mc._y=8;
if(type == "swf"){
swf_mc._xscale=swf_mc._yscale=80;
} else {
while((swf_mc._width>440)||(swf_mc._height>320)){
swf_mc._xscale -=1;
swf_mc._yscale -=1;
}
}
}
mcLoader.addListener(listener);
mcLoader.loadClip(swfurl,swf_mc);
}
测试影片,在文本框中输入外部swf或图片的地址,点击打开,外部文件将加载到播放窗口中,播放。注意:如果外部文件在网络上,那么就必须用http://.....格式,如果在本地硬盘上,则应输入完整路径,如果与本swf文件在同一个目录中,则只须输入文件名即可。
下面我们来分析下代码
代码分析:
代码全部放在按钮的点击事件中:
load_btn.onRelease =function(){
首先将进度条从库中加载到舞台上,并设置它的位置,使它处于播入屏幕中间,因为现在还没有开始下载,所以设置进度条的长度为0.
attachMovie("loading","loading_mc",getNextHighestDepth());
loading_mc._x=80;
loading_mc._y=215;
loading_mc.loadt_mc._xscale=0;
接下来,声明一个变量swfurl来存放用户在地址文本中输入的外部文件地址。用type来存放地址的最后三个字符,用以判断加载的是swf还是图片。
var swfurl = url_txt.text;
var type = swfurl.substr(-3,3);
创建一个空的MC用来加载外部文件
createEmptyMovieClip("swf_mc", 1);
创建一个MovieClipLoader对象用于加载外部文件,创建一个侦听对象用于调用MovieClipLoader的事件。
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:O**ect = new O**ect();
调用onLoadProgress事件,即在下载过程中,读取已下载的字节数和总的字节数,并用它们的比值,设置进度条的长度。
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loading_mc.loadt_mc._xscale=Math.floor((bytesLoaded/bytesTotal)*100);
}
调用onLoadInit在加载完成后,删除进度条。并设置加载的文件的位置和大小,使之适应播入屏幕的大小。上面我们记录的播放屏幕的左上角坐标现在有用了,将加载的文件的坐标设为记录的值。文件的大小,首先判定加载的是swf文件还是图片。为什么在判断呢?这是因为加载swf文件后,目标MC的_width和_hight就失灵了,因而就只能用_xscaleswf_,_yscale 来控制,很显然这不科学的,因为加载的swf大小不可能都一样,按比例缩放无法达到精确的尽寸。所以我们只能把要加载的swf文件看成550x400的大小来缩小到80%。而图片则可用宽高属性来设置,所以分开来,整精确一个算一个。按上面存的用户输入的地址的最后三个字符,如果是swf那么就是加载 swf文件了,就用_xscaleswf_,_yscale来控制。如果不是则是加载图片那么就可用宽高属性来判断加载的图片是否大于播放屏幕,如果大了,则调整_xscaleswf_,_yscale属性,使之减小。为什么还是调整_xscaleswf_,_yscale呢?这是为了,使保持宽高比例,以免变形。
listener.onLoadInit = function(swf_mc){
loading_mc.removeMovieClip();
swf_mc._x=60;
swf_mc._y=8;
if(type == "swf"){
swf_mc._xscale=swf_mc._yscale=80;
} else {
while((swf_mc._width>440)||(swf_mc._height>320)){
swf_mc._xscale -=1;
swf_mc._yscale -=1;
}
}
}
最后MovieClipLoader对象侦听侦听对象,加载影片。
mcLoader.addListener(listener);
mcLoader.loadClip(swfurl,swf_mc);
作业:制作这个播放器