2013-05-26 3 views
0

Я создал медиа-сервер с «Adobe Media Server Starter 5» на localhost, и я могу подключиться к нему через приложение AS3 AIR. Я могу увидеть связь с моего приложения под названием «SimpleServer» в «Adobe Media Server Administration Console», и я получаю положительные отзывы о связи:AS3: SharedObject не отображается в Консоли администрирования

Принято соединение с IP: 127.0.0.1, ссылающейся: приложение : /SimpleServer.swf, pageurl:

Я не получаю компиляцию или ошибку времени выполнения при попытке создать новый SharedObject, я вообще не получаю никакой обратной связи. Я использую следующий код:

var shared:SharedObject = SharedObject.getRemote("HelloWorld", "rtmp://localhost/SimpleServer"); 
    shared.addEventListener(SyncEvent.SYNC, syncEventHandler); 
    shared.connect(nc); 

В NetConnection создается как следует:

nc = new NetConnection(); 
    nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
    nc.connect("rtmp://localhost/SimpleServer"); 
    nc.client = this; 

Я не могу видеть SharedObject в «Список приложений» -> «Общие объекты», и я не получаю обратную связь о создание. Это похоже на то, что объект никогда не был создан. Я также попытался установить свойства на SharedObject, при отсутствии эффекта:

shared.setProperty("test", false); 

Есть простое решение этой проблемы, или я должен настроить продвинутые вещи сервера? Заранее спасибо!

+0

Выполните одно из обработчиков событий что вы добавляете выше, выполняются? Ожидаете ли вы подключения NetConnection до вызова 'connect()' в 'SharedObject'? –

+0

Кажется, что 'syncEventHandler' не выполняется. «NetStatusHandler» запускается и указывает на «NetConnection» как подключенный, поэтому он подключается при попытке подключения «SharedObject» ... – 1awuesterose

+0

Мне удалось решить проблему, как я прокомментировал ответ duTr. Спасибо за ваши усилия! – 1awuesterose

ответ

0

Как спросил Сунил в комментариях, является ли syncEventHandler когда-либо вызываемым при запуске кода?

Чтобы частично ответить на ваши вопросы: нет никакой конкретной конфигурации на стороне сервера, чтобы иметь возможность извлекать объект SharedObject на стороне клиента. Просто убедитесь, что вы подключены к серверу, прежде чем пытаться получить/подключиться к удаленному общему объекту.

См this answer еще несколько информаций

Кроме того, хороший PRACTIVE при попытке получить удаленный общий объект также использовать Ури из вашего NetConnection Например:

var shared:SharedObject = SharedObject.getRemote("HelloWorld", nc.uri); 
+0

Я создал SharedObject на KeyboardEvent. Я изменил переменную 'shared' на глобальную, поэтому она будет существовать в течение всего времени выполнения программы. Теперь я вижу объект SharedObject в Консоли администрирования. Тот же эффект возникает, когда я объявляю «shared» local, но нажимаю его на глобальный массив или что-то в этом роде. Я также добавил строку 'shared.client = this', но я понял, что это не повлияло. Спасибо за помощь! – 1awuesterose