2008-11-08 6 views
1

Я пытаюсь настроить двунаправленное локальное соединение (LC) между двумя объектами вспышки на одной и той же веб-странице. Один объект - AS2 и другой AS3.Что может вызвать ошибки соединения при использовании двунаправленного локального соединения во Flash?

  1. Я использую один объект LC для отправки и получения данных по каждому SWF. (Это не имеет значения, правильно? Я пробовал использовать два объекта: один для отправки и один для приема, но получил ту же проблему).

Они правильно соединяют(), чтобы они оба слушали. Но я получаю ошибки, когда пытаюсь отправить данные из AS2 SWF в AS3 LC. Это происходит в 95% случаев, но иногда это работает, поэтому я знаю, что это не проблема с именами LC (я проверил, очевидно)

Иногда происходит одно или два сообщения, а сообщения о несоответствии прерываются.

Любая идея о том, что может вызвать это?

Я собираюсь создать карту соединений «один к одному», чтобы многие AS2 swfs могли подключаться к одному AS3 swf. Будет ли это проблемой?

ответ

0

Я, наконец, выяснил, что вызвало проблему.

Похоже, что хотя в AS3 вы можете использовать один и тот же объект LC для отправки и получения событий, так как в AS2 вы будете получать ошибки через некоторое время (возможно, при попытке отправить после получения).

2

Одна из возможных причин заключается в том, что я заметил, что несколько слушателей с тем же именем LC, похоже, не работают. Чтобы увидеть, что я имею в виду, откройте this page на двух разных вкладках, и вы увидите, что оба «отправляющего» SWF-файла работают, но сообщение получено только на первой вкладке, которую вы открыли. Думаю, вы используете только два SWF, но если они оба пытаются прослушивать одно и то же имя LC, возможно, вы видите что-то подобное?

Кроме того, я считаю, что LC каким-то образом отключен для SWF, которые находятся внутри невидимых элементов страницы или, возможно, даже просто за кадром. Вы делаете что-нибудь подобное?

0

У вас не случайно есть два разных браузера, открытых на той же странице? LocalConnection будет подключаться в браузере, что может вызвать эту проблему.

Обычно я делаю, чтобы гарантировать, что имена LC уникальны, чтобы создать случайное имя LC на сервере, а затем передать это имя LC для обоих swfs с использованием FlashVars.

Он может также иметь какое-то отношение к заказу, в котором загружается swf. Может случиться так, что swf, слушающий соединение, загружается после того, как swf создает соединение, пытающееся подключиться. Затем, остальные 5% времени, загрузка swf в правильном порядке. Возможно, если произошла ошибка, попробуйте снова подключиться.