我在一个房地产网站上工作,会有多个房产,每个都有自己的主页。每个属性主页都会有一个不同的介绍视频,在页面加载后播放。
我正在使用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的初学者,有人能给我一些关于如何配合的建议吗?
一种可能性是调整视频的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值;你必须根据需要对它们进行调整。但要意识到,ActionScript3中的Timer对象往往很糟糕,每秒不超过几次,至少如果你没有以潜在的尴尬方式设置的话。因此,这在很多情况下都应该有效,但如果你想,比如说,将alpha值每秒减少.0120次,这可能是最好的选择,也可能不是最好的选择。
我错误地以另一个用户的身份发布了上面的问题,但我想分享到目前为止我得到的结果。
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;
工作示例