2012-07-23 21 views
0

我创造了一些培训视频使用Adobe吸引6.当我看到他们采取任何地方从10到60秒之间的任何游戏开始在窗口中的任何事情之前显示之前加载视频(该文件从1MB达到5MB) 。我使用jquery将它们加载到jquery-ui对话框中,当文件完全下载时让浏览器开始播放。我怎样才能让一个.swf文件立即开始播放?

我的问题,正在等待瑞士法郎戏开始之前完全下载。我希望它开始播放,然后在播放时继续下载,以便用户在看到某些内容之前不必等待很长时间。

视频培训,这样对我来说是一个比较新的领域,所以我真的不知道我的选择是......如果瑞士法郎是不是要走的路,我有什么用吸引的选择吗?我尝试了captviate的YouTube导出功能,但它调整了视频的大小以适应YouTube,使字体太小而无法阅读。

当我在YouTube上观看视频时,他们立即开始播放,但在观看时继续下载......我喜欢这个概念,并想知道是否可以使用我现有的.swf文件实现这种功能。

这个问题有哪些选择和可能的解决方案?

在此先感谢您的帮助。

这里是加载对话框中的呼叫:

<span onclick="$('#popup_tutorial').dialog('option', 'position', 'top').dialog('option','title','Portfolios - Creating a new portfolio').load('tutorials/acctg_payments.php').dialog('widget').dialog('open');" class="a_link edit_link">View Tutorial</span> 

这里是#popup_tutorial HTML:

<div id="popup_tutorial" style="text-align:left"></div> 
<script type="text/javascript"> 
    $("#popup_tutorial").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     Height: 740, 
     width: 900, 
     modal: false, 
     close: function() {$(this).empty();} 
    }); 
</script> 

这里是保存.swf文件的代码,并得到了PHP页面放置在#popup_tutorial div内:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title></title> 

<script src="standard.js" type="text/javascript"></script> 
</head> 

<body bgcolor="#f5f4f1"> 

    <div id="CaptivateContent">&nbsp; 
    </div> 
    <script type="text/javascript"> 
     var so = new SWFObject("acctg_payments_making.swf", "Captivate", "881", "720", "10", "#CCCCCC"); 
     so.addParam("quality", "high"); 
     so.addParam("name", "Captivate"); 
     so.addParam("id", "Captivate"); 
     so.addParam("wmode", "window"); 
     so.addParam("bgcolor","#f5f4f1"); 
     so.addParam("menu", "false"); 
     so.addParam("AllowScriptAccess","always"); 
     so.addVariable("variable1", "value1"); 
     so.setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"); 
     so.write("CaptivateContent"); 
    </script> 


    <script type="text/javascript"> 
     document.getElementById('Captivate').focus(); 
     document.Captivate.focus(); 
    </script> 
</body> 
</html> 

回答

0

Captivate和大多数Flash电影不是在作为电影的线性时尚,尽管其中的一些内容可能以这种方式出现。为SWF发挥了大量的交互逻辑。也就是说,你几乎可以看到它们就像是DLL,EXE,Java JAR或IPA(iphone),它们在下载完整个二进制文件之前无法运行。

也就是说,即使在SWF部分加载时,SWF也提供了内容开发者运行和播放内容的方式,但是由开发人员来生成SWF或程序生成此输出的能力,通常这是非常复杂的是,这是大多数开发者尚未追求的水平。就你而言,我不认为Captivate提供这种功能。但是,如果你想让它发生,你可以考虑将Captivate电影分成更小的电影并将它们链接在一起,但是我怀疑Captivate会在当前电影播放时预先加载下一个电影。

+0

感谢您的答复......我注意到,如果浏览器缓存已经下载的文件,下一次我点击它,它就会立刻发挥它...它是可以下载这些进入客户端cach并为它们做好准备......或者像memcache这样的东西可以帮助做到这一点? – Ronedog 2012-07-23 18:14:58

0

的Captivate 6和7(可能8)允许您确定影片开始播放前多大比例的电影应该下载。我有一段时间没有使用Captivate 6,所以我不记得它在UI中的位置,但是在Captivate 7上,从主菜单中选择Quiz -> Quiz Preferences打开首选项对话框。在那里你可以调整preloader %。这是在播放开始之前将要下载的电影的百分比。默认情况下,它被设置为100%,这可以解释为什么您的电影只有在完全下载之后才能开始。

在我的经验,设置此%会在一些设置,但不是别人的工作。不过,这值得一试。

-Patrick