Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 需要行动脚本建议!_Flash_Actionscript_Actionscript 2 - Fatal编程技术网

Flash 需要行动脚本建议!

Flash 需要行动脚本建议!,flash,actionscript,actionscript-2,Flash,Actionscript,Actionscript 2,我想在我的动作脚本中添加以下脚本,以便在外部视频完成后重定向到第一帧 但是我不确定如何定制适合我的脚本的代码 这是我想在我的AS中添加的代码: ns.onStatus = function(info:Object) { if(info.code == 'NetStream.Play.Stop') { gotoAndPlay(2); } } 下面是我现在用来播放外部视频文件的原始代码。我需要自定义上面的代码,这些代码应该可以用于下面的代码 function checkTime(flv) {

我想在我的动作脚本中添加以下脚本,以便在外部视频完成后重定向到第一帧

但是我不确定如何定制适合我的脚本的代码

这是我想在我的AS中添加的代码:

ns.onStatus = function(info:Object)
{
if(info.code == 'NetStream.Play.Stop')
{
gotoAndPlay(2);
}
}
下面是我现在用来播放外部视频文件的原始代码。我需要自定义上面的代码,这些代码应该可以用于下面的代码

function checkTime(flv)
{
    var _loc2 = flv.playheadTime;
    var _loc3 = Math.floor(_loc2 / 60);
    var _loc1 = Math.floor(_loc2 % 60);
    if (_loc1 < 10)
    {

        _loc1 = "0" + _loc1;
    } // end if

    current_time.text = _loc3 + ":" + _loc1;
} // End of the function
flv.pauseButton = pause_btn;
flv.playButton = play_btn;
flv.FLVPlayback.align = center;
var time_interval = setInterval(checkTime, 500, flv);

ffwd_btn.onRelease = function ()
{
    flv.seek(flv.playheadTime + 2);
};
rewind_btn.onRelease = function ()
{
    flv.seek(flv.playheadTime - 5);
};
mute_btn.onRelease = function ()
{
    if (videoSound.getVolume() == 0)
    {
        videoSound.start();
        videoSound.setVolume(volLevel);
    }
    else
    {
        volLevel = _root.videoSound.getVolume();
        videoSound.setVolume(0);
        videoSound.stop();
    } // end else if
};
var videoSound = new Sound(this);
videoSound.setVolume(100);
flv.contentPath = flvurl;
fl.video.FLVPlayback.align = center;
功能检查时间(flv)
{
var _loc2=flv.播放时间;
var _loc3=数学楼层(_loc2/60);
var _loc1=数学地板(_loc2%60);
如果(_loc1<10)
{
_loc1=“0”+_loc1;
}//如果结束,则结束
当前_time.text=_loc3+“:”+_loc1;
}//函数结束
flv.pauseButton=暂停按钮;
flv.playButton=播放\u btn;
flv.FLVPlayback.align=中心;
var时间间隔=设定间隔(检查时间,500,flv);
ffwd_btn.onRelease=函数()
{
flv.seek(flv.playheadTime+2);
};
倒带\u btn.onRelease=函数()
{
flv.seek(flv.playheadTime-5);
};
mute_btn.onRelease=功能()
{
if(videoSound.getVolume()==0)
{
videoSound.start();
视频声音。设置音量(音量级);
}
其他的
{
volLevel=_root.videoSound.getVolume();
设置音量(0);
videoSound.stop();
}//如果需要,则结束
};
var videoSound=新声音(此);
视频声音。设置音量(100);
flv.contentPath=flvurl;
fl.video.FLVPlayback.align=中心;

有人能帮我吗?

因为您使用的是AS2,并且
完成的
事件触发与AS2中的FLVPlayback组件不一致,并且您已经在使用
setInterval
进行轮询,只需将视频
持续时间
checkTime()
函数中的
播放头时间
进行比较,如下所示:

function checkTime()
{
    // you other stuff here....

    if( flv.metadata && flv.metadata.duration > 0)
    {
        var prog:Number = Math.round((flv.playheadTime/flv.metadata.duration)*100);

        if( prog == 100 )
        {
            //clean up your interval
            clearInterval(time_interval);

            // do 'end of video' stuff
            gotoAndPlay(2);
        }
    }
}
请注意,
duration
嵌套在
FLVPlayback
实例的
metadata
属性中。在加载足够的flv文件之前,它是不可用的,但是由于您正在使用您的间隔轮询,所以当您需要它时,它将在那里


应该可以得到你想要的…

谢谢“GTHMB”的快速回复,不管怎样,我会很快尝试并让你知道它是如何工作的!!!再次感谢。在放置您提到的上述代码后,它不会播放视频。!!!!坏运气:(你只是在增加你当前的
checkTime()
函数与我的示例中的逻辑一致,对吗?添加进度检查不会中断播放…是的,你是对的,我刚刚添加了与你上面提到的相同的代码。但我不知道视频播放功能发生了什么!嗯…我想知道你是否遇到了除零错误或其他问题…我会用ch更新答案在尝试确定进度之前,检查有效的持续时间。