尝试:Flash幻灯片


感谢网上关于ActionScript的教程
这篇文章搁置了很久,参考资料已经找不到了,故不放置


在学校历史老师那里接了个任务——给班里的童鞋上节历史课。而我在班里又是一个很喜欢装X的人,喜欢搞点“创新”,于是便有了用Flash做Slides的想法。

我的做法是参考Adobe的一个example,好,开始切入正题。

首先新建一个Flash文档。新建Flash文档(也许要点新建ActionScript3.0)
又是熟悉的舞台,不过我们要进行一定调整

单击舞台,在属性框里调整大小,调为最清晰大小800×600或者最佳大小1024×768.我这里就用800×600

FPS_BigSmall.jpg

帧速FPS就不要管了,因为我们是幻灯片,不是动画。

然后在舞台上新建四个图层,分别是动作、幻灯片、背景。当然,图层命名随你便啦。不过除动作外,都一个关键帧。(我这里多了一个说明,不要在意,完全是锦上添花的东西)

tucen.jpg

接下来创建两个元件,一个是影片剪辑,一个是按钮。

yuanjian.jpg

按钮就放个自己做的按钮吧,也可以用附件中我的fla文件。影片剪辑中两个图层(一个也可以),一个是辅助线(你可以不要),一个是影片(就是播放的内容)

tucen_.jpg

辅助线我就不讲了,其实就是个框。在幻灯片图层中加入你的幻灯片内容,内容我想我就不用多说了吧?

slides.jpg

一片黑,略恐怖,不过没事,咱来做背景(建议做完背景后拖动幻灯片元件到舞台,双击元件开始编辑,就不会漆黑了)

背景也是很简单,只要做个模板就行了,再在下方安上按钮。

backgrounmd.jpg

接下来就是最重要的代码啦。下面我给出我在“动作”图层的完整代码

//--------------------------------------------------
//  Flash演示文稿动作
//  ActionScript3.0
//  by Soha King in Tianhai Information Technology
//  http://tianhai.info/
//--------------------------------------------------

import fl.transitions.*;

// 用户个性设置
var buttonsOn:Boolean = true; // 跳转按钮是否启用 两个值true, false
var pageNumberOn:Boolean = true; // 页码是否启用  两个值true, false
var transitionOn:Boolean = true; // 幻灯片切换动画是否启用 两个值true, false
var transitionType:String = "Fade"; // 幻灯片样式 Blinds(百叶窗), Fade(淡入淡出), Fly(飞入), Iris(彩虹), Photo(相片), PixelDissolve(像素), Rotate(缩放), Squeeze(挤), Wipe(擦拭), Zoom(急速上升), Random(随机)
// 用户个性设置终止

// 按键事件
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_changeSlideKeyboard);
prev_btn.addEventListener(MouseEvent.CLICK, fl_prevSlideButton);
next_btn.addEventListener(MouseEvent.CLICK, fl_nextSlideButton);
function fl_changeSlideKeyboard(evt:KeyboardEvent):void
{
    if(evt.keyCode == 37) // ←键按下
    {
        fl_prevSlide();
    }
    else if (evt.keyCode == 39 || evt.keyCode == 32) // →或空格键按下
    {
        fl_nextSlide();
    }
}
function fl_prevSlideButton(evt:MouseEvent):void
{
    fl_prevSlide();
}
function fl_nextSlideButton(evt:MouseEvent):void
{
    fl_nextSlide();
}
// 按键事件结束

// 功能与逻辑处理
function fl_prevSlide():void
{
    if(slides_mc.currentFrame > 1)
    {
        slides_mc.gotoAndStop(slides_mc.currentFrame-1);
        if(transitionOn == true)
        {
            fl_doTransition();
        }
        if(pageNumberOn == false)
        {
            slideNumber_txt.text = "";
        } else {
            slideNumber_txt.text = String(slides_mc.currentFrame + "/" + slides_mc.totalFrames);
        }
    }
}
function fl_nextSlide():void
{
    if(slides_mc.currentFrame < slides_mc.totalFrames)
    {
        slides_mc.gotoAndStop(slides_mc.currentFrame+1);
        if(transitionOn == true)
        {
            fl_doTransition();
        }
        if(pageNumberOn == false)
        {
            slideNumber_txt.text = "";
        } else {
            slideNumber_txt.text = String(slides_mc.currentFrame + "/" + slides_mc.totalFrames);
        }
    }
}
function fl_doTransition():void
{
    if(transitionType == "Blinds")
    {
        TransitionManager.start(slides_mc, {type:Blinds, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Fade")
    {
        TransitionManager.start(slides_mc, {type:Fade, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Fly")
    {
        TransitionManager.start(slides_mc, {type:Fly, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Iris")
    {
        TransitionManager.start(slides_mc, {type:Iris, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Photo")
    {
        TransitionManager.start(slides_mc, {type:Photo, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "PixelDissolve")
    {
        TransitionManager.start(slides_mc, {type:PixelDissolve, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Rotate")
    {
        TransitionManager.start(slides_mc, {type:Rotate, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Squeeze")
    {
        TransitionManager.start(slides_mc, {type:Squeeze, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Wipe")
    {
        TransitionManager.start(slides_mc, {type:Wipe, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Zoom")
    {
        TransitionManager.start(slides_mc, {type:Zoom, direction:Transition.IN, duration:0.25});
    } else if (transitionType == "Random")
    {
        var randomNumber:Number = Math.round(Math.random()*9) + 1;
        switch (randomNumber) {
            case 1:
                TransitionManager.start(slides_mc, {type:Blinds, direction:Transition.IN, duration:0.25});
                break;
            case 2:
                TransitionManager.start(slides_mc, {type:Fade, direction:Transition.IN, duration:0.25});
                break;
            case 3:
                TransitionManager.start(slides_mc, {type:Fly, direction:Transition.IN, duration:0.25});
                break;
            case 4:
                TransitionManager.start(slides_mc, {type:Iris, direction:Transition.IN, duration:0.25});
                break;
            case 5:
                TransitionManager.start(slides_mc, {type:Photo, direction:Transition.IN, duration:0.25});
                break;
            case 6:
                TransitionManager.start(slides_mc, {type:PixelDissolve, direction:Transition.IN, duration:0.25});
                break;
            case 7:
                TransitionManager.start(slides_mc, {type:Rotate, direction:Transition.IN, duration:0.25});
                break;
            case 8:
                TransitionManager.start(slides_mc, {type:Squeeze, direction:Transition.IN, duration:0.25});
                break;
            case 9:
                TransitionManager.start(slides_mc, {type:Wipe, direction:Transition.IN, duration:0.25});
                break;
            case 10:
                TransitionManager.start(slides_mc, {type:Zoom, direction:Transition.IN, duration:0.25});
                break;
        }
    } else
    {
        trace("error - transitionType not recognized");
    }
}

if(buttonsOn == false)
{
    prev_btn.visible = false;
    next_btn.visible = false;
}
slides_mc.gotoAndStop(1);
stage.scaleMode = StageScaleMode.SHOW_ALL;
// 功能与逻辑处理结束

stop();

这个代码还是要感谢Adobe的开源的,这非常好。幻灯片的配置参数就在前几行,可以对照我的中文修改。

至此,这个Flash幻灯片就差不多了,如有问题,请在下面评论,我一定会回复的。


我的Flash文档示例
链接: http://pan.baidu.com/s/1zTXuA
密码: xc9i


协议: 本文根据 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License 进行授权。

标签:


撰写新评论

account_circle
mail
insert_link
mode_comment