首页 > 软件开发 > 编程语言 >

[AS3编程教学]Flash相册高级教程

来源:互联网 2023-03-17 00:10:14 版权归原作者所有,如有侵权,请联系我们
本教程是在前一个进阶教程的基础上继续做优化和修改,既然是高级教材,势必会省去很多制作过程,主要精力放在编码工作上。本次制作相册的主要做法就是除了背景以外的元件全部靠动态创建,并且用一个缓动引擎TweenLite来实现相册的转场效果,这种动态创建的做法对练习程序编写很有好处,但是项目开发而言并不是最佳方式。

z8D办公区 - 实用经验教程分享!

工具/原料

  • FlashCS3(及其以上版本),5张图片

步骤/方法

  • 1首先我们删去舞台上的按钮和相册元件,舞台上只剩下一个背景

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 2其次我们按照相册的内容来写出程序执行大致架构。

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 3接下来我们实现createTitle()函数

    z8D办公区 - 实用经验教程分享!

    function createTitle():void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    var txtTitle:TextField = new TextField();

    z8D办公区 - 实用经验教程分享!

    txtTitle.autoSize = TextFieldAutoSize.CENTER;

    z8D办公区 - 实用经验教程分享!

    txtTitle.text = "美女相册";

    z8D办公区 - 实用经验教程分享!

    txtTitle.x = (stage.stageWidth - txtTitle.width)/2;

    z8D办公区 - 实用经验教程分享!

    txtTitle.y = 5;

    z8D办公区 - 实用经验教程分享!

    addChild(txtTitle);

    z8D办公区 - 实用经验教程分享!

    var tFormat:TextFormat = new TextFormat();

    z8D办公区 - 实用经验教程分享!

    tFormat.font = "微软雅黑";

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 30;

    z8D办公区 - 实用经验教程分享!

    txtTitle.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    发布后如图所示,有了标题!

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 4我们用同样的方法创建日期字符串,放在左下角。

    z8D办公区 - 实用经验教程分享!

    function createDate():void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    var txtTitle:TextField = new TextField();

    z8D办公区 - 实用经验教程分享!

    txtTitle.autoSize = TextFieldAutoSize.RIGHT;

    z8D办公区 - 实用经验教程分享!

    txtTitle.text = "2011年12月31日";

    z8D办公区 - 实用经验教程分享!

    txtTitle.x = stage.stageWidth - txtTitle.width - 2;

    z8D办公区 - 实用经验教程分享!

    txtTitle.y = stage.stageHeight - txtTitle.height*2;

    z8D办公区 - 实用经验教程分享!

    addChild(txtTitle);

    z8D办公区 - 实用经验教程分享!

    var tFormat:TextFormat = new TextFormat();

    z8D办公区 - 实用经验教程分享!

    tFormat.font = "微软雅黑";

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 16;

    z8D办公区 - 实用经验教程分享!

    txtTitle.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    此时发布影片,我们已经看到了两个文本。

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 5接下来我们创建相册元件,相册元件是一个影片剪辑,里面有5张连续的图片,注意注册点居中。在库里找到这个原价你,给他一个连接的类名PhotoItem,如果弹出没有类的提示,那么点击确定让其自动创建。

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 6我们接着写创建相册元件的函数,从库里加载刚才加了连接名的元件到舞台上合适的位置。

    z8D办公区 - 实用经验教程分享!

    var mcPhotoItem:PhotoItem;

    z8D办公区 - 实用经验教程分享!

    function createPhotos():void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem = new PhotoItem();

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem.x = 148;

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem.y = 66;

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem.stop();

    z8D办公区 - 实用经验教程分享!

    addChild(mcPhotoItem);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 7接下来我们创建两个文本框,放在相册下方,分别对应内容描述和页面显示:

    z8D办公区 - 实用经验教程分享!

    var txtInfo:TextField;

    z8D办公区 - 实用经验教程分享!

    var txtPage:TextField;

    z8D办公区 - 实用经验教程分享!

    function createInfoText():void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    //--------------

    z8D办公区 - 实用经验教程分享!

    txtInfo = new TextField();

    z8D办公区 - 实用经验教程分享!

    txtInfo.autoSize = TextFieldAutoSize.CENTER;

    z8D办公区 - 实用经验教程分享!

    txtInfo.text = "相册内容描述";

    z8D办公区 - 实用经验教程分享!

    txtInfo.x = 142;

    z8D办公区 - 实用经验教程分享!

    txtInfo.y = 255;

    z8D办公区 - 实用经验教程分享!

    txtInfo.width = 255;

    z8D办公区 - 实用经验教程分享!

    txtInfo.textColor = 0x7E0A0A

    z8D办公区 - 实用经验教程分享!

    addChild(txtInfo);

    z8D办公区 - 实用经验教程分享!

    var tFormat:TextFormat = new TextFormat();

    z8D办公区 - 实用经验教程分享!

    tFormat.font = "微软雅黑";

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 14;

    z8D办公区 - 实用经验教程分享!

    txtInfo.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    //---------

    z8D办公区 - 实用经验教程分享!

    txtPage = new TextField();

    z8D办公区 - 实用经验教程分享!

    txtPage.autoSize = TextFieldAutoSize.CENTER;

    z8D办公区 - 实用经验教程分享!

    txtPage.text = "相册页码";

    z8D办公区 - 实用经验教程分享!

    txtPage.x = 142;

    z8D办公区 - 实用经验教程分享!

    txtPage.y = 280;

    z8D办公区 - 实用经验教程分享!

    txtPage.width = 255;

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 16;

    z8D办公区 - 实用经验教程分享!

    txtPage.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    addChild(txtPage);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 7相关内容未经授权抓取自百度经验
  • 8接下来我们创建两个按钮,这次按钮从系统组件里拖出来到库里,如图所示。

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 9写创建按钮函数如下:

    z8D办公区 - 实用经验教程分享!

    import fl.controls.Button

    z8D办公区 - 实用经验教程分享!

    var btnPrev:Button;

    z8D办公区 - 实用经验教程分享!

    var btnNext:Button;

    z8D办公区 - 实用经验教程分享!

    function createBtns():void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    btnPrev = new Button();

    z8D办公区 - 实用经验教程分享!

    btnPrev.x = 142;

    z8D办公区 - 实用经验教程分享!

    btnPrev.y = 310;

    z8D办公区 - 实用经验教程分享!

    btnPrev.label = "上一页";

    z8D办公区 - 实用经验教程分享!

    btnPrev.addEventListener(MouseEvent.CLICK,prevPhotos);

    z8D办公区 - 实用经验教程分享!

    addChild(btnPrev);

    z8D办公区 - 实用经验教程分享!

    btnNext = new Button();

    z8D办公区 - 实用经验教程分享!

    btnNext.x = 297;

    z8D办公区 - 实用经验教程分享!

    btnNext.y = 310;

    z8D办公区 - 实用经验教程分享!

    btnNext.label = "下一页";

    z8D办公区 - 实用经验教程分享!

    btnNext.addEventListener(MouseEvent.CLICK,nextPhotos);

    z8D办公区 - 实用经验教程分享!

    addChild(btnNext);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    function prevPhotos(e:MouseEvent):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    trace("Prev");

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    function nextPhotos(e:MouseEvent):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    trace("Next");

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 10继续完善上一步下一步控制函数,我们这次做个循环播放,如果上一页到第一页时,自动转到最后一页;同理下一页到最后一页时,自动转到第一页。

    z8D办公区 - 实用经验教程分享!

    function prevPhotos(e:MouseEvent):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    var index:int = mcPhotoItem.currentFrame;

    z8D办公区 - 实用经验教程分享!

    if(index == 1)showPhoto(5);

    z8D办公区 - 实用经验教程分享!

    else showPhoto(index - 1);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    function nextPhotos(e:MouseEvent):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    var index:int = mcPhotoItem.currentFrame;

    z8D办公区 - 实用经验教程分享!

    if(index == 5)showPhoto(1);

    z8D办公区 - 实用经验教程分享!

    else showPhoto(index 1);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 11下面写图片展示函数,我们说过要用到一个动态缓动引擎叫TweenLite类,如果你能看到这里,那么你肯定有能力去搞清楚这个类是什么,其实程序的东西你只要知道它对外接口,会用就非常好了,会用比懂总是有实际意义。我们做得效果是图片缩放到80%,透明度变到60%时,图片切换下一张,然后在变回来原始尺寸和透明度,视觉上一闪一闪的,首先要确保类包在Ctrl U的面板里被设置进来。

    z8D办公区 - 实用经验教程分享!

    import com.greensock.TweenLite;

    z8D办公区 - 实用经验教程分享!

    function showPhoto(index:int):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    TweenLite.to(mcPhotoItem,.2,{scaleX:.8,scaleY:.8,alpha:.6,onComplete:changePic,onCompleteParams:[index]});

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    function changePic(index:int):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem.gotoAndStop(index);

    z8D办公区 - 实用经验教程分享!

    TweenLite.to(mcPhotoItem,.3,{scaleX:1,scaleY:1,alpha:1});

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 12如果你能跟得上节奏,就会发现此时已经实现了相册功能了:

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 13但是还有一个问题,那就是图片信息和页码不切换,所以我们接下去就写这部分功能。我们只需要在图片缩小切换的时候刷新内容就可以了,继续写一个信息刷新函数:

    z8D办公区 - 实用经验教程分享!

    function changePic(index:int):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    mcPhotoItem.gotoAndStop(index);

    z8D办公区 - 实用经验教程分享!

    TweenLite.to(mcPhotoItem,.3,{scaleX:1,scaleY:1,alpha:1});

    z8D办公区 - 实用经验教程分享!

    showInfo(index);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    function showInfo(index:int):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    txtInfo.text = "第" index "美女照片!";

    z8D办公区 - 实用经验教程分享!

    txtPage.text = "" index ">";

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    此时测试的时候发现已经可以正常显示,但是有个奇怪的地方,我们设置的微软雅黑变成宋体了:

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 14没有办法,动态创建的文本就是这样,这时候我们需要每次给它设置类型才行。

    z8D办公区 - 实用经验教程分享!

    showInfo(1);

    z8D办公区 - 实用经验教程分享!

    function showInfo(index:int):void

    z8D办公区 - 实用经验教程分享!

    {

    z8D办公区 - 实用经验教程分享!

    txtInfo.text = "第" index "美女照片!";

    z8D办公区 - 实用经验教程分享!

    txtPage.text = "" index ">";

    z8D办公区 - 实用经验教程分享!

    var tFormat:TextFormat = new TextFormat();

    z8D办公区 - 实用经验教程分享!

    tFormat.font = "微软雅黑";

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 14;

    z8D办公区 - 实用经验教程分享!

    txtInfo.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    tFormat.size = 16;

    z8D办公区 - 实用经验教程分享!

    txtPage.setTextFormat(tFormat);

    z8D办公区 - 实用经验教程分享!

    }

    z8D办公区 - 实用经验教程分享!

    [AS3编程教学]Flash相册高级教程z8D办公区 - 实用经验教程分享!

  • 1515 本相册制作完毕,源代码太多,需要的同学可以加我QQ无偿索取。小小相册,其实大有学问,看看过两天如果有空并且有精力,就写计划中相册的最后一篇教程“大师教程”。你将见识如何用面向对象的思维来开发这个相册!
  • 注意事项

    • 还是那句话,勤学苦练,跟智力无关。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!z8D办公区 - 实用经验教程分享!


    标签: 编程

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号