如何显示mp4然后在Flash CC中暂停和重放

时间:2014-11-03 15:45:56

标签: actionscript-3 flash

我正在复活一个简单的横幅,我们使用FLV电影和以下代码让电影暂停使用setInterval,然后再次播放。这是一部简单的蝴蝶电影,拍打它的翅膀,然后回到静止状态。

现在看来在最新的Flash版本中不鼓励FLV,所以我想知道如何制作电影,然后暂停使用setInterval,然后重播。

这是在基于帧的动画中在时间轴上使用FLV时的工作AS3,但不适用于导入的.mp4:

stop(); 
function timesUp()
{ 
gotoAndPlay(1,"Scene 1"); 
clearInterval(itv); 
} 
var itv=setInterval(timesUp, 15000);

新建议的方法是否使用单帧影片加载和播放mp4,然后使用setInterval作为计时器进行重放?

我找不到任何以此方法为例的教程。

我确实在Adobe网站上阅读过教程,但以下内容未加载并播放电影(morpho.mp4)

var nc:NetConnection = new NetConnection(); 
nc.connect(null);
var vid:Video = new Video(); 
addChild(vid);
var ns:NetStream = new NetStream(nc); 
ns.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); 
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 

function netStatusHandler(event:NetStatusEvent):void 
{ 
// handle netStatus events, described later 
} 

function asyncErrorHandler(event:AsyncErrorEvent):void 
{ 
// ignore error 
}
vid.attachNetStream(ns);

ns.play("morpho.mp4");

1 个答案:

答案 0 :(得分:0)

试试这个:

import flash.utils.Timer
import flash.events.TimerEvent

var video_playing:Boolean = false, 
    timer:Timer,
    nc:NetConnection,
    ns:NetStream,
    video:Video,
    video_name:String = 'video.mp4'

nc = new NetConnection()
nc.connect(null)

ns = new NetStream(nc)
ns.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); 
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 

function netStatusHandler(event:NetStatusEvent):void {      
    switch (event.info.code){
        case 'NetStream.Play.Start' :
            if(timer.currentCount == 0){
                timer.start()
            }
        break       
    }   
} 
function asyncErrorHandler(event:AsyncErrorEvent):void { 
}

video = new Video(135, 135) // set the size of video to 135x135px
video.x = 165               // set the left of video to 300 - 135 = 165px
video.y = 0                 // set the top of video to 0
video.attachNetStream(ns)
addChild(video)

timer = new Timer(1000, 3) // 3 seconds, just for example
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timer_on_Complete)
function timer_on_Complete(e:TimerEvent){
    if(video_playing){
        video_playing = false
        ns.close()
    } else {
        start_video()
    }
    timer.reset()
    timer.start()
}

start_video()

function start_video(){
    ns.play(video_name)
    video_playing = true
}