Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как обратиться к блоку кода в html странице (http://www.flasher.ru/forum/showthread.php?t=202243)

Akopalipsis 04.07.2013 16:13

Как обратиться к блоку кода в html странице
 
Контейнер swf встроен в html страницу и грузит в себя основную swf.
И не как не могу понять, как из основного файла.swf обратиться к коду.js на html странице.
я полдня смотрел в гугле, как это сделать и узнал, что можно как то через swfobject, но у меня не получается. В общем я не знаю как это сделать.

KumoKairo 04.07.2013 16:15

на индексной странице:
Код:

<script>
    function myTestFunction(string)
    {
        alert(string)
    }
</script>

В коде флешки
Код AS3:

if(ExternalInterface.available)
{
    ExternalInterface.call("myTestFunction", "myTestString");
}

Больше об ExternalInterface

Akopalipsis 04.07.2013 16:21

KumoKairo так не работает! А должно?

KumoKairo 04.07.2013 16:22

http://www.flasher.ru/forum/showthread.php?t=201922

Akopalipsis 04.07.2013 16:22

Если делать из флеша, который в качестве контейнера, то да! работает. Но из флеша загруженного в этот контейнер - нет.

Добавлено через 4 минуты
Вот какой код в html :
Код AS3:

<head>
        <meta charset="utf-8"/>
        <title>container</title>
        <meta name="description" content="" />
 
        <script src="js/swfobject.js"></script>
        <script>
        function path( $path ) //вот эту функцию вызываю из swf
        {
            console.log( 'path' );
        }
        var flashvars = {
            value: 'yes'
                };
                var params = {
                        menu: "false",
                        scale: "noScale",
                        allowFullscreen: "true",
                        allowScriptAccess: "always",
                        bgcolor: "",
                        wmode: "direct" // can cause issues with FP settings & webcam
                };
                var attributes = {
                        id:"container"
                };
                swfobject.embedSWF(
                        "container.swf",
                        "altContent", "100%", "100%", "10.0.0",
                        "swfobject/expressInstall.swf",
                        flashvars, params, attributes);
        </script>
        <style>
                html, body { height:100%; overflow:hidden; }
                body { margin:0; }
        </style>
</head>

отлаживаю в firedebug, вот код в as
Код AS3:

private function jsCall( $name : String ):void
                {
                        if ( ExternalInterface.available )
                        {
                                Console.console( 'Console ON - website' );
                                ExternalInterface.call( 'path' , $name );
                        }
                }

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

Добавлено через 1 час 30 минут
Не знаю как, но всё само наладилось...Спасибо!


Часовой пояс GMT +4, время: 20:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.