2013-06-23 6 views
0

Я потянув меня за волосы, пытаясь встроить флэш-файл у меня есть на странице, и перепробовал много вариантов следующих двух способов:Проблема встраивания вспышки в HTML с помощью тега объекта/SWFObject

SWFObject

<head> 
    <%= javascript_include_tag 'swfobject.js' %> 
</head> 
. 
. 
. 
<div id="dragndrop">This requires Adobe Flash to view</div> 
<script type="text/javascript"> 
    var flashvars; 
    var params = { 
    movie: "<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", 
    background: "#FFFFFF", 
    quality: "high" 
    }; 

    swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", 
    "dragndrop", "100%", "100%", "6.0.0", false, params); 
</script> 

Переход на страницу дает ничего, но выводит следующее в браузере:

<object id="dragndrop" width="100%" height="100%" type="application/x-shockwave-flash"  
    data="/assets/flash/drag-n-drop-w-action3b.swf" style="visibility: visible;"> 
    <param name="flashvars" value="movie=/assets/flash/drag-n-drop-w-action3b.swf&background=#FFFFFF&quality=high"> 
</object> 

Я пробовал без параметры тоже тоже безрезультатно.

Я также попытался вручную добавить его несколькими способами, в том числе, как описано here. Этот флэш-файл в настоящее время встраивать на другой веб-сайт успешно, и я даже копировать-вставить HTML-там (фиксация пути):

<object width="100%" height="100%" align="" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> 
    <param value="assets/flash/drag-n-drop-w-action3b.swf" name="movie"> 
    <param value="high" name="quality"> 
    <param value="#FFFFFF" name="bgcolor"> 
    <embed width="100%" height="100%" align="" 
    pluginspage="http://www.macromedia.com/go/getflashplayer" 
    type="application/x-shockwave-flash" bgcolor="#FFFFFF" quality="high"  
    src="/assets/flash/drag-n-drop-w-action3b.swf"> 
</object> 

Что я делаю неправильно?

EDIT:

После pipwerks помочь, я изменил код:

var params = { background: "#FFFFFF",}; 
swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", "dragndrop", "100%", "100%", "6.0.0", false, false, params); 

Однако, это еще не совсем работает. Новый HTML, который выводится следующим образом:

<object id="dragndrop" width="100%" height="100%" type="application/x-shockwave-flash" 
    data="/assets/flash/drag-n-drop-w-action3b.swf" style="visibility: visible;"> 
    <param name="background" value="#FFFFFF"> 
</object> 

ответ

0

Для начала вы случайно передаете параметры в качестве flashvars.

Во-вторых, вам не нужно передавать большинство этих параметров, поскольку они уже позаботились. Параметр movie является первым аргументом в SWFObject. quality=high по умолчанию для Flash Player, и его не нужно указывать. Я считаю, что #FFFFFF также является цветом фона по умолчанию, но это не помешает указать его.

Правильный порядок аргументов:

swfobject.embedSWF([swf file], 
        [document element id], 
        [width], 
        [height], 
        [min Flash Player version], 
        [express install swf or false], 
        [flashvars obj or false], 
        [params obj or false], 
        [attributes obj or false], 
        [callback function or false]); 

Поэтому ваш код должен быть:

var params = { background: "#FFFFFF",}; 
swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", "dragndrop", "100%", "100%", "6.0.0", false, false, params); 

См this page для получения более подробной информации о SWFObject аргументов.

+0

Это решило прохождение параметров, как проблема вспышек, но объект вспышки все еще не внедрен. Нужно ли явно встраивать его? Я думал, что это не нужно? Я обновил свой оригинал, отправленный с выходом HTML, используя предоставленный вами код. Спасибо за помощь; Я ценю это! – mattmattmatt