Отсутствует FlashVars в Flash Professional CS5 и swfobject? - PullRequest
1 голос
/ 17 февраля 2011

У меня есть ролик Flash Professional CS5, в котором я пытаюсь передать параметр с помощью swfobject. Проблема заключается в том, что переменные flashvar для movieclip (в loaderInfo.parameters) имеют значение null.

Вот код swfobject:

function loadSetupBar(connectId) 
{
  // add the setup bar to the DOM using swfobject
  swfobject.embedSWF("{{setupBarSwf}}",
    "swf-setup-bar",
    {{gameWidth}}, $("#top-bar").height(),
    "10.0.0", "{{installSwf}}",
    {connectionId : connectId },
    {
      allowFullScreen : true,
      wmode : 'opaque',
      allowscriptaccess: "always"
    },
    {name:"swf-setup-bar"}
  );
}

Согласно документации swfobject, все вроде бы нормально.

Вот соответствующий код внутри FLA (мувиклип с собственным классом AS3):

var params : Object = root.loaderInfo.parameters;
var connectionId : String = params.connectionId;

if ( !params.hasOwnProperty('connectionId') )
   // this line is always printed.
   trace("[SetupBar-Error] loaderInfo parameters missing property 'connectionId'")

Я не уверен, что еще делать.

Спасибо.

РЕДАКТИРОВАТЬ: Вот список вещей, которые я пробовал, которые потерпели неудачу:

  • преобразовал root.loaderInfo в класс LoaderInfo (т.е. LoaderInfo (this.root.loaderInfo))
  • передача строкового литерала в swfobject.embedSWF вместо param connectId (т.е. {connectionID: 'myTestValue'})

Ответы [ 2 ]

1 голос
/ 14 августа 2011

Существует проблема с элементом управления TLF TEXT, когда вы добавляете его на сцену, flashvars начинает не работать.просто не используйте его, и ваши flashvars будут работать нормально.Я столкнулся с той же проблемой и решил ее, не используя TLF TEXT control.

Надеюсь, что помог.

С наилучшими пожеланиями

0 голосов
/ 17 февраля 2011

Попробуйте это:

var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var connectionID:String = params.connectionId;
...