使用ActionScript完成视频播放后淡出NetStream

时间:2013-11-26 18:33:28

标签: flash video actionscript netstream

我正在开发一个房地产网站,每个网站都会有多个属性。每个属性主页都会显示一个不同的介绍视频,该视频将在页面加载后播放。

我正在使用Flash播放视频,从flashvar获取视频文件名。

我正在使用Flash Pro CS4和ActionScript 3.0,这是我到目前为止的代码(非常简陋),它的工作正常:

//VARIABLLE DECLARATIONS
var video;
var nc;
var ns;
var video_file;

//Get Flashvar intro_video_file
video_file = root.loaderInfo.parameters.intro_video_file;

//RUN ON STARTTUP
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.client = this;
video = new Video(560, 315);
addChild(video);
video.attachNetStream(ns);

ns.play(video_file);

但是我想让视频加载并在播放前淡入,然后在完成后淡出而不是仅仅挂在那里

淡入不太重要。

我有点像Flash和ActionScript的初学者,有人可以给我一些关于如何帮助这个的指示吗?

2 个答案:

答案 0 :(得分:0)

一种可能性是调整视频的alpha属性:

video.alpha = .5;

这必须通过定时事件处理:

tmr = new Timer(500, 0);
tmr.addEventListener(TimerEvent.Timer, onTimer);
tmr.start();
.
.
.
private function onTimer(pEvent:TimerEvent):void
{
    video.alpha += .125; // or -=, case depending
    if (video.alpha == 1.0)
    {
        tmr.stop();
        tmr.removeEventListener(TimerEvent.Timer, onTimer);
    }
}

这些只是已提供的示例int和Number值;你必须根据需要调整它们。但是只是意识到ActionScript 3中的Timer对象往往非常糟糕,因为每秒钟不会超过几次,至少如果你没有以潜在的尴尬方式进行设置。所以这应该在许多情况下都有效,但是如果你想这样做,让我们说,将α值减少.01每秒20次,这可能是也可能不适合你。

答案 1 :(得分:0)

我错误地将上述问题作为其他用户发布,但想分享我到目前为止的内容。

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

function fadeOut() {
    function onTimer(pEvent:TimerEvent):void
    {
        video.alpha -= .125; // or -=, case depending
        if (video.alpha == 0)
        {
            myTimer.stop();
            myTimer.removeEventListener(TimerEvent.TIMER, onTimer);
        }
    }
    var myTimer:Timer = new Timer(40, 0);
    myTimer.addEventListener(TimerEvent.TIMER, onTimer);
    myTimer.start();
}

function fadeIn() {

    function onTimer(pEvent:TimerEvent):void

        ns.pause();
        video.alpha += .125; // or -=, case depending
        if (video.alpha == 1.0)
        {
            myTimer.stop();
            myTimer.removeEventListener(TimerEvent.TIMER, onTimer);
            ns.resume();
        }
     }
     var myTimer:Timer = new Timer(40, 0);
     myTimer.addEventListener(TimerEvent.TIMER, onTimer);
    myTimer.start();
}



//VARIABLLE DECLARATIONS
var video;
var nc;
var ns;
var video_file;


function statusHandler(event:NetStatusEvent):void 
{ 
    switch (event.info.code) 
    { 
        case "NetStream.Play.Start": 
            fadeIn();
            break; 
        case "NetStream.Play.Stop": 
        fadeOut();
            break; 
    } 
}



//Get Flashvar video_file
video_file = root.loaderInfo.parameters.intro_video_file;

//RUN ON STARTTUP
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.client = this;
video = new Video(560, 315);
addChild(video);
video.attachNetStream(ns);
ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); 
ns.play(video_file);
video.alpha = 0;

working example