Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > Вызвать ф-ию as2 из яваскрипта


Автор: numerovan 9.5.2013, 22:31
Здравствуйте, что-то не пойму как вызвать ф-ию ActionScript2 из Яваскрипта.
Пробывал через SetVarible() не получаеться ни как, а ExternalInterface вроде на AC3.

Есть варианты ?

Автор: numerovan 10.5.2013, 05:20
Разобрался с этой проблемой. На всякий случай напишу свои мысли.

В ActionScript необходимо добавить следующие строчки:

Код

import flash.external.ExternalInterface;
ExternalInterface.addCallback("fnJavaScript", null, fnActionScript); // fnJavaScript - так назовём ф-ию каторая сработает в яваскрипте и её как бы алиас во флеше это fnActionScript  

function fnActionScript(){
    // тут какие-то действия в самом флеше
};

Код

// нижняя ф-ию создаёт объект (флеша), вариант для IE и остальных браузеров
function getMovie(){
            var obj = navigator.appName.indexOf("Microsoft") != -1; // Microsoft - так и оставляйся
            return (obj ? window : document)["myMP3player1px"];   // myMP3player1px - это id моего тега object в html
        }

// функцию sendFromJS вешаем куда нибудь на кнопку в html
function sendFromJS(){
            var movie = getMovie();
            movie.fnJavaScript(); // вот эта вот ф-ия что была прописана сверху в ExternalInterface.addCallback();    
        }
// после вызываем ф-ию sendFromJS(), каторая в свою очередь вызывает fnJavaScript() и далее срабатывает алиас внутри флеша fnActionScript()


Но как пишут в ExternalInterface ошибок хватает и не надёжно его использовать. 

Как вызвать ф-ию внутри флеша с помощью SetVarible() так что-то и не понял ...

Автор: Maksys 10.5.2013, 10:04
Лучше ExternalInterface ничего нет.
SetVariable убогая штука, со всех сторон. И существовала до fscommand и ExternalInterface

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)