Могу ли я иметь флэш-фильм общаться с наложением jquery Shadowbox? - PullRequest
2 голосов
/ 17 мая 2010

Я хочу настроить размер оверлея в зависимости от того, сколько контента отображается во флэш-фильме. Кроме того, я хочу, чтобы он изменял размер в реальном времени, когда пользователь настраивает содержимое.

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 17 мая 2010

Конечно, Flash может вызывать методы в Javascript, используя ExternalInterface. Синтаксис довольно прост, скажем, у вас в Javasacript:

function methodInJS(name) {
   alert("Hello to " + name);
   return 17;
}

Тогда в Actionscript вы бы назвали:

var myName:String = "David";
var result:Number = ExternalInterface.call("methodInJS", myName);
trace("Result from JS call is: "+result);
1 голос
/ 17 мая 2010

Да, используйте ExternalInterface

В вашем HTML настройте ваш теневой бокс так:

<link rel="stylesheet" type="text/css" href="shadowbox.css">
<script type="text/javascript" src="shadowbox.js"></script>

<script type="text/javascript">
Shadowbox.init({
    skipSetup: true
});

function openShadowbox(content, type){
    Shadowbox.open({
        content:    content,
        player:     type,
        title:      "Welcome",
        height:     350,
        width:      350
    });
};
</script>

Тогда в вашем ActionScript:

if(ExternalInterface.avilable){
 try{
  ExternalInterface.call("openShadowbox", "<h1>Welcome to my website!</h1>", "html");
 }catch(error:Error){
  trace(error);
 }
}
...