Могут ли Flash и Javascript общаться? - PullRequest
4 голосов
/ 04 февраля 2011

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

это можно сделать?

Ответы [ 2 ]

9 голосов
/ 04 февраля 2011

Чтобы вызвать функцию JavaScript из Flash, используйте функцию ExternalInterface.call в ActionScript:

import flash.external.ExternalInterface;

// Call a JavaScript function
ExternalInterface.call("your_javascript_function");

// Get a return value from a JavaScript function
var x:int = ExternalInterface.call("get_x");

// Pass an argument to a JavaScript function
var retval:int = ExternalInterface.call("some_js_function", "the-argument");

Чтобы вызвать функцию ActionScript из JavaScript, сначала используйте функцию ExternalInterface.addCallback в ActionScript:

// "methodName" is the method to call in JavaScript
// instanceObject.realMethod is the method that will be triggered
var successful = ExternalInterface.addCallback("methodName",
                                               instanceObject,
                                               realMethod);

Затем получите дескриптор объекта SWFObject в JavaScript и вызовите метод ActionScript следующим образом:

function makeActionScriptCall() {
    var flash = document.getElementById(movieName);
    flash.methodName(parametersIfAny);
}

Для получения дополнительной информации см .:

5 голосов
/ 04 февраля 2011

Используйте объект ExternalInterface , чтобы ваш ActionScript мог вызывать функции JavaScript и наоборот.

...