感谢网上关于ActionScript的教程
这篇文章搁置了很久,参考资料已经找不到了,故不放置
在学校历史老师那里接了个任务——给班里的童鞋上节历史课。而我在班里又是一个很喜欢装X的人,喜欢搞点“创新”,于是便有了用Flash做Slides的想法。
我的做法是参考Adobe的一个example,好,开始切入正题。
首先新建一个Flash文档。新建Flash文档(也许要点新建ActionScript3.0)
又是熟悉的舞台,不过我们要进行一定调整
单击舞台,在属性框里调整大小,调为最清晰大小800×600或者最佳大小1024×768.我这里就用800×600
帧速FPS就不要管了,因为我们是幻灯片,不是动画。
然后在舞台上新建四个图层,分别是动作、幻灯片、背景。当然,图层命名随你便啦。不过除动作外,都一个关键帧。(我这里多了一个说明,不要在意,完全是锦上添花的东西)
接下来创建两个元件,一个是影片剪辑,一个是按钮。
按钮就放个自己做的按钮吧,也可以用附件中我的fla文件。影片剪辑中两个图层(一个也可以),一个是辅助线(你可以不要),一个是影片(就是播放的内容)
辅助线我就不讲了,其实就是个框。在幻灯片图层中加入你的幻灯片内容,内容我想我就不用多说了吧?
一片黑,略恐怖,不过没事,咱来做背景(建议做完背景后拖动幻灯片元件到舞台,双击元件开始编辑,就不会漆黑了)
背景也是很简单,只要做个模板就行了,再在下方安上按钮。
接下来就是最重要的代码啦。下面我给出我在“动作”图层的完整代码
//--------------------------------------------------
// 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
支持一下~搞不懂FLASH~
reply