Flash:AS3:改为在计时器上运行幻灯片/电影(使用cs5中的模板)

Flash:AS3:改为在计时器上运行幻灯片/电影(使用cs5中的模板),flash,actionscript-3,Flash,Actionscript 3,我将制作一个flash简介,包括使用flash转换在图片和视频内容之间转换。我不打算使用模板中的全部代码,我只想用定时器而不是按键事件来实现转换。一个类似如下: stop(); var timer1:Timer = new Timer(200); timer1.addEventListener(TimerEvent.TIMER, blah1); timer1.start(); function blah1(e:TimerEvent):void{ play(); timer1.res

我将制作一个flash简介,包括使用flash转换在图片和视频内容之间转换。我不打算使用模板中的全部代码,我只想用定时器而不是按键事件来实现转换。一个类似如下:

stop();

var timer1:Timer = new Timer(200);
timer1.addEventListener(TimerEvent.TIMER, blah1);
timer1.start();

function blah1(e:TimerEvent):void{
 play();
    timer1.reset()

trace("Times Fired: " + e.currentTarget.currentCount);
trace("Time Delayed: " + e.currentTarget.delay);
}
下面是我计划使用的幻灯片模板的代码:

    import fl.transitions.*;

// USER CONFIG SETTINGS
var buttonsOn:Boolean = true; // true, false
var pageNumberOn:Boolean = true; // true, false
var transitionOn:Boolean = true; // true, false
var transitionType:String = "Fade"; 
// END USER CONFIG SETTINGS

// EVENTS
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) // LEFT
    {
        fl_prevSlide();
    }
    else if (evt.keyCode == 39 || evt.keyCode == 32) // RIGHT OR SPACE
    {
        fl_nextSlide();
    }
}
function fl_prevSlideButton(evt:MouseEvent):void
{
    fl_prevSlide();
}
function fl_nextSlideButton(evt:MouseEvent):void
{
    fl_nextSlide();
}
// END EVENTS

// FUNCTIONS AND LOGIC
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 == "Fade")
    {
        TransitionManager.start(slides_mc, {type:Fade, direction:Transition.IN, duration:0.25});
    } 
}
slides_mc.gotoAndStop(1);
stage.scaleMode = StageScaleMode.SHOW_ALL;
// END FUNCTIONS AND LOGIC

stop();
import fl.transitions.*;
//用户配置设置
var buttonsOn:Boolean=true;//真假
var pageNumberOn:Boolean=true;//真假
var transitionOn:Boolean=true;//真假
var transitionType:String=“Fade”;
//最终用户配置设置
//事件
stage.addEventListener(键盘事件。按键向下,fl改变滑键板);
prev_btn.addEventListener(MouseEvent.CLICK,fl_prevSlideButton);
下一步添加事件列表器(MouseEvent.CLICK,fl_nextslide按钮);
功能fl_changeSlideKeyboard(evt:键盘事件):无效
{
if(evt.keyCode==37)//左
{
fl_prevlide();
}
else if(evt.keyCode==39 | | evt.keyCode==32)//右或空格
{
fl_nextSlide();
}
}
函数fl_prevSlideButton(evt:MouseeEvent):无效
{
fl_prevlide();
}
功能fl_nextSlideButton(evt:MouseeEvent):无效
{
fl_nextSlide();
}
//结束事件
//功能与逻辑
函数fl_prevsiled():void
{
如果(幻灯片\u mc.currentFrame>1)
{
幻灯片转到并停止(幻灯片当前帧-1);
if(transitionOn==true)
{
fl_doTransition();
}
如果(pageNumberOn==false)
{
slideNumber_txt.text=“”;
}否则{
slideNumber_txt.text=字符串(slides_mc.currentFrame+“/”+slides_mc.totalFrames);
}
}
}
函数fl_nextSlide():void
{
if(幻灯片\u mc.currentFrame<幻灯片\u mc.totalFrames)
{
幻灯片转到并停止(幻灯片当前帧+1);
if(transitionOn==true)
{
fl_doTransition();
}
如果(pageNumberOn==false)
{
slideNumber_txt.text=“”;
}否则{
slideNumber_txt.text=字符串(slides_mc.currentFrame+“/”+slides_mc.totalFrames);
}
}
}
函数fl_doTransition():void
{
如果(transitionType==“淡入淡出”)
{
开始(幻灯片_mc,{类型:淡入,方向:Transition.IN,持续时间:0.25});
} 
}
滑梯(1);
stage.scaleMode=StageScaleMode.SHOW_ALL;
//端函数和逻辑
停止();

我推测您有这两个片段,希望使用第一个片段来控制第二个片段附带的幻灯片放映

如果是,只需:

function blah1(e:TimerEvent):void{
     fl_nextSlide();
    //timer1.reset();
    ...
}

我推测您有这两个片段,并且希望使用第一个片段来控制幻灯片放映,这是第二个片段附带的

如果是,只需:

function blah1(e:TimerEvent):void{
     fl_nextSlide();
    //timer1.reset();
    ...
}

您需要按如下方式更改幻灯片放映代码。 例如,在计时器事件中,您将执行“下一步”按钮之前执行的操作。 此外,您可能还需要检查幻灯片放映何时结束,然后决定要做什么,在开始或停止时滚动

var timer:Timer = new Timer(200);
timer.addEventListener(TimerEvent.TIMER, onTime);
timer.start();

function onTime(e:TimerEvent):void{
 fl_nextSlide();
 timer.reset();
}

您需要按如下方式更改幻灯片放映代码。 例如,在计时器事件中,您将执行“下一步”按钮之前执行的操作。 此外,您可能还需要检查幻灯片放映何时结束,然后决定要做什么,在开始或停止时滚动

var timer:Timer = new Timer(200);
timer.addEventListener(TimerEvent.TIMER, onTime);
timer.start();

function onTime(e:TimerEvent):void{
 fl_nextSlide();
 timer.reset();
}

我的问题是,我将如何为幻灯片放映而不是使用键盘事件实现计时器?我的问题是,我将如何为幻灯片放映而不是使用键盘事件实现计时器?我是否需要为每个幻灯片/帧使用单独的计时器,或者我可以用一个代码将它们全部获取?也就是说,在上面的代码中,计时器只对第一张幻灯片/帧起作用。我如何将其应用于每一张幻灯片,使其在整个幻灯片放映过程中不断暂停并重新开始?我是否需要为每一张幻灯片/每一帧设置单独的计时器,或者我是否可以用一个代码将它们全部获取?也就是说,在上面的代码中,计时器只对第一张幻灯片/帧起作用。我如何将其应用于每一个幻灯片,使其在整个幻灯片放映过程中不断暂停并重新开始?