PDA

Просмотр полной версии : Связь между флэшками


Grape
26.03.2002, 23:22
Если возможно каким то макаром устуновить связь между двумя и более одновременно работающими флэшками, а именно:
- перебрасывать переменные;
- управлять переходом с кадра на кадр одного мувика нажимая кнопки на другой ( примитивно )
- загружать звук с другой флэшки
- загружать и выгружать мувики в одной флэшке управляя ею с другой (примитивно - нажимая кнопочки на другой флэшке).
Спасибо.

john
27.03.2002, 01:16
Объект LocalConnection

Связывает объекты флаш (SWF, Projector) где бы они не находились. На разных страницах, в разных броузерах, на одной странице между прожектором и страницей и так дале.
Данные передаются любых типов (кроме созданных юзером классов).

Конструктор

MyLocal = new LocalConnection();

Методы

connect (channel);

Создает коннект к определенному каналу.
Возвращает true если подсоединение успешно.
Соединение будет успешным, если не создано одноименного соединения другим объектом LocalConnection (на том же домене). Или же у этого объекта нет другого соединения.
У удного объеката "канал" может быть только один.

close();

Закрывает соединение.
Например если нужно у того же объкта создать другое соединение.
Аналогичного результата можно добиться удалив экземпляр объекта LocalConnection. Данный метод позволяет использовать один экземляр для нескольких соединений.

send( channel , "onDataHandler" , [ arg1,<...>,argN ]);

Метод отсылает сообщение другому объекту.
В отличие от подключению к каналу, отсылать объeкт может по нескольким каналам. И несоклько объектов могут отсылать по одному и тому же каналу.

channel - по какому каналу отпраляется данные.

onDataHandler - метод-обработчик, который вызывается у объекта который подключен к данному каналу.

arg1,<...>,argN - аргументы обработчику.

domain ();

Возвращает домен на котором находится данный объект флэш. Например "3wgraphics.net"

пример.



// отсылающий объект.

MyLocal = new LocalConnection();

setInterval(function () {
MyLocal.send("sendData","onDataLocal",++a)

},300)

// принимающий объект в другом SWF файле

MyLocal = new LocalConnection();
MyLocal.connect("sendData")


MyLocal.onDataLocal = function (a) {
test = a;
}



В данном примере один объект отсылает данные а принимающий принимающий отображает данные в тектовом поле.


Ограничения.

Принимающий и принимающий объкты должны находится на одном домене. На разных доменах SWF-шки общаться не могут.

Может быть несколько "одноименных" каналов и объктов работающих с этими каналами, если это разные домены.
Напрмер могут работать паралельно два канала на "flasher.ru" и "3wgraphics.net" c одним названием (MyLocal.connect("sendData") )

Объект запущеный из локального файла (с диска пользователя) не может "прослушивать" канал другого домена.