callback from flashembed of jquery Tools

喜你入骨 提交于 2020-01-05 09:03:02

问题


jQuery Tools includes a flashembed API which accepts many parameters. Is there one which accepts callback function and fires after the success state of the flash player load event?

playerdiv.flashembed(url+'/VIPlayer.swf','knds_player',300,250,'8.0.0',false,flashVars);

Information: official website.

Note: This is possible in Google swfobject library as below:

swfobject.embedSWF(url+'/VIPlayer.swf','knds_player',300,250,'8.0.0',false,flashVars,callBack);

function callBack(event){ event after successful display of code
}

But I need to use only flashembed. Can you please help me here?

Thanks in Advance :)


回答1:


The flashembed method has an onFail argument which takes a callback as a value:

$("#flash").flashembed({
   src: flashSWF,
   version:[10,0],
   id:"flashObj",
   width: 500,
   height: 300,
   wmode: "opaque",
   cachebusting: "false",
   allowscriptaccess: "always",
   api: "false",
   scale: "noscale",
   menu: "false",
   onFail: flasherror("#flash")
   })

It inadvertently fires on both success AND failure. Search for the , character to distinguish between the two states. On error, it shows up as the delimiter in the version string, such as 11,0 rather than 11.0:

function flashError(domnode, newtext){

function failState()
  {
  if ($(domnode).html().search(/,/) !== -1) //player failed to load
    {
    newtext = $(domnode).html(); // store default error string
    $(domnode).empty();
    $(domnode).append(newtext.replace(/,/g,".")); // replace comma with period
    if ($(domnode).hasClass("flashmsg") === false)
      {
      $(domnode).addClass("flashmsg"); // add class to custom error element
      }
    }
  else
    {
    //success logic
    }        
}

// observer constructor
var cursor =
typeof window.hasOwnProperty === "function" ?
  window.hasOwnProperty("WebKitMutationObserver")
    ? new WebKitMutationObserver(startValidation)
    : window.hasOwnProperty("MutationObserver")
      ? new MutationObserver(startValidation)
      : false
        : false
  ;

//Use observer event if it exists
if (cursor)       
  {
  //Bind observer event to text child of the dom node
  cursor.observe($(domnode).get(0), { childList: true } );
  return;
  }
//Use mutation event as a fallback
else if (!!document.addEventListener)
  {
  $(domnode).get(0).addEventListener("DOMNodeInserted", failState, false); 
  }
//Use readystatechange event for legacy IE
else
  {
  $(domnode).get(0).addBehavior("foo.htc");
  $(domnode).get(0).attachEvent("onreadystatechange", failState);
  }

References

  • FlashEmbed Configuration

  • Migrating mutation and property change events to mutation observers



来源:https://stackoverflow.com/questions/8325189/callback-from-flashembed-of-jquery-tools

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!