Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вызов скрипта из флешки, загруженной в другую флешку (Error #2032) (http://www.flasher.ru/forum/showthread.php?t=169572)

elmortem 07.10.2011 16:29

Вызов скрипта из флешки, загруженной в другую флешку (Error #2032)
 
Такая ситуация.
Есть флешка http://mysite/dir1/app1.swf, которая грузит флешку http://mysite/dir2/app2.swf, которая пытается отправлять и получать данные из скрипта http://mysite/dir3/index.php

Когда запускаем app1.swf локально, то всё работает нормально, но если запускать с сервера, то получаю ошибку #2032. Как понял в моём случае что-то с политиками безопасности.

Перепробовал уже наверное все комбинации разрешения доступа. Не работает. Не понимаю.
Кто сталкивался с подобными проблемами? Подскажите пожалуйста.

Inet_PC 07.10.2011 16:39

Код AS3:

Security.allowDomain('*');

и в той и в той флешке, не?

GBee 07.10.2011 17:01

Это кажись IOErrorEvent

elmortem 07.10.2011 17:08

Цитата:

Сообщение от Inet_PC (Сообщение 1037669)
и в той и в той флешке, не?

Не заработало. ):

Inet_PC 07.10.2011 17:11

Как советует GBee это походу IOErrorEvent:
Код AS3:

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
private function onError(e: ErrorEvent):void
{
        trace('Error');
}


elmortem 07.10.2011 17:28

Цитата:

Сообщение от GBee (Сообщение 1037680)
Это кажись IOErrorEvent

Да, и?

Добавлено через 5 минут
Цитата:

Сообщение от Inet_PC (Сообщение 1037684)
Как советует GBee это походу IOErrorEvent:

Именно так я и ловлю ошибку. Побороть-то как? Локально всё работает, в инете - нет.

Добавлено через 13 минут
Возможно я не совсем правильно написал. app2 грузится в app1 нормально, ошибок нету. Ошибки начинаются при попытке вызвать скрипт из app2. Если я гружу удалённый app2 в локальный app1, то удалённый скрипт отлично отрабатывает. А если всё на сервере, то при обращении к скрипту - #2032.

Inet_PC 07.10.2011 17:47

Адрес передаете правильный? Он просто в браузере дает загрузить флешку по этому адресу? Может нет прав на чтение, хз.

GBee 07.10.2011 17:50

По абсолютному пути все грузите?

elmortem 07.10.2011 17:50

Цитата:

Сообщение от Inet_PC (Сообщение 1037689)
Адрес передаете правильный? Он просто в браузере дает загрузить флешку по этому адресу? Может нет прав на чтение, хз.

Если первую флешку запускать локально, то всё работает (скрипт и вторая флешка на сервере). Так что адреса все точно верные. Скрипт сам по себе в браузере тоже работает.

Добавлено через 51 минуту
Цитата:

Сообщение от GBee (Сообщение 1037690)
По абсолютному пути все грузите?

Да. (5 символов)

GBee 07.10.2011 19:37

про 5 символов не понял. Полный трейс ошибки то есть? Выложите куда-нить?

nOobCrafter 07.10.2011 22:14

грузите в текущий апп домен и секурити домен и будет вам щасте. Ну и учитываейте что http://www.ya.ru и http://ya.ru для флеша два разных сайта.

trng 07.10.2011 22:42

Настройку компилятора network access / local access меняете?

elmortem 08.10.2011 11:08

Цитата:

Сообщение от GBee (Сообщение 1037706)
про 5 символов не понял. Полный трейс ошибки то есть? Выложите куда-нить?

Вот то, что отдаёт IOErrorEvent.toString()
Код AS3:

[IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]

P.S. Про 5 символов, это чтобы сообщение можно было отправить, форум не позволяет отправлять мессаги меньше 5 символов.

Добавлено через 2 минуты
Цитата:

Сообщение от nOobCrafter (Сообщение 1037729)
грузите в текущий апп домен и секурити домен и будет вам щасте. Ну и учитываейте что http://www.ya.ru и http://ya.ru для флеша два разных сайта.

Делаю вот так сейчас:
Код AS3:

var context:LoaderContext = new LoaderContext();
if (Security.sandboxType != 'localTrusted') context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
context.checkPolicyFile = true;

Добавлено через 4 минуты
Цитата:

Сообщение от trng (Сообщение 1037736)
Настройку компилятора network access / local access меняете?

Нет, не меняю. Use Network Services = True

GBee 08.10.2011 12:44

Цитата:

Вот то, что отдаёт IOErrorEvent.toString()
Код AS3:
[IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]
В дебаге можете посмотреть подробнее, что событие содержит?

crazyone 09.10.2011 03:04

#2032 - это Stream Error или проклятие адобовских нетворк сервайсов. Насколько я помню, к политике безопасности это иммет очень слабое отношение. Ибо на неправильную политику флеш плюется при помощи SecurityError-ов.

Флеш выдает 2032-ю ошибку всякий раз, когда ему не нравится ответ сервера. Типа если хттп-статус неправильный.
Добавьте слушателя на HttpStatusEvent.HTTP_STATUS + посмотрите в логи сервера - куда идет запрос и что сервер отвечает.

И да, послушайтесь GBee и поставьте дебаг плеер, чтобы получать не только номер ошибки, но и более-менее развернутое ее описание.

elmortem 11.10.2011 20:00

Вы были правы, сервер плевался 500 ошибкой. Локально он не отрабатывал проблемный код, поэтому всё работало. HTTP STATUS - сила. (:
Всем спасибо.


Часовой пояс GMT +4, время: 02:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.