Как получить несколько переменных Flashvars во Flash (без использования swfobject) - PullRequest
0 голосов
/ 22 июня 2010

Я перестраиваю этот встраиваемый проигрыватель для моего клиента, URL-адрес видеофайла и несколько других переменных представлены в HTML как Flashvars.Я подозреваю, что что-то не так с кодом, который ищет flashvars.

Верхняя часть, показывающая зеленое поле, - это место, где проигрыватель не загружался, поскольку он не смог получить Flashvars из HTML.У игрока ниже есть строка Flashvars, жестко запрограммированная в плеере, чтобы она работала.

Я полагаю, что проблема лежит где-то ниже. Возможно, что-то не так с тем, как я пытаюсь использовать Flashvars?

// LIVE Embedded
   //vidURL = stage.loaderInfo.parameters.fvar;
   vidURL = this.loaderInfo.parameters.fvar;            

   fvarText.text = "vidURL = this.loaderInfo.parameters.fvar"

   vidSplit = vidURL.split(".flv")[0].split("/");
   varVid   = vidURL.toLowerCase().split("&vid=")[1].split("&")[0];
   varChid  = vidURL.toLowerCase().split("&chid=")[1].split("&")[0];

// Hardcode Testing 
//(This creates the player that works at the bottom of the test page)
   /*vidURL   = "http://";
   vidSplit = vidURL.split(".flv")[0].split("/");
   varVid   = vidURL.toLowerCase().split("&vid=")[1].split("&")[0];
   varChid  = vidURL.toLowerCase().split("&chid

Я получаю эту ошибку при экспорте из Flash:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.Player::Embed/init()
at com.Player::Embed()

Однако я ожидаю эту ошибку, поскольку очевидно, что Flash еще не встроен, но может ли эта ошибкапролить свет на то, почему мой проигрыватель не может получить ссылку на FlashVars, а затем визуализировать себя?

Код для вставки HTML:

<object width="640" height="395" border="0">
<param name="flashvars" value="fvar=http://360.flv&amp;VID=1273&amp;CHID=4" />
<embed src="http://dev.site.com/flash.swf" width="640" height="395" flashvars="fvar=http://360.flv&amp;VID=1273&amp;CHID=4">
</embed>
</object>

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Как сказал Джордж, вы можете попробовать использовать flashvars для тегов и.Кроме того, я цитирую значения моего атрибута и экранирую свой амперсанд (&).Следующий код должен работать:

<object width="640" height="395" border="0">
    <param name="flashvars" value="file=http://how.llnwd.net/o18/UpDo_H_828-640x360.flv&amp;VID=1273&amp;CHID=4" />
    <embed src="http://dev.site.com/flash.swf" width="640" height="395" flashvars="file=http://how.llnwd.net/o18/UpDo_H_828-640x360.flv&amp;VID=1273&amp;CHID=4">
    </embed>
</object>
1 голос
/ 22 июня 2010

Вам необходимо установить параметр flashVars как для объекта, так и для тега embed. Проверьте эту ссылку http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_3.html

<object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='100%' width='100%'>
        <param name='src' value='FlashVarTest.swf'/>
        <param name='flashVars' value='firstName=Nick&lastName=Danger'/>
        <embed name='mySwf' src='FlashVarTest.swf' pluginspage='http://www.adobe.com/go/getflashplayer' height='100%' width='100%' flashVars='firstName=Nick&lastName=Danger'/>
    </object>

Чтобы получить значения внутри Flash. Используйте это:

var firstName:String = stage.loaderInfo.parameters.firstName;
var lastName:String = stage.loaderInfo.parameters.lastName;
...