![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Как известно политика безопасности не разрешает использовать вторичные SWF с кодом в iOS. Но в моем случае, в SWF запакованы только ассеты (Movie clip) с разными instance names. Поэтому проблем не должно быть в принципе.
Итак, скачиваем SWF с сервера обычным лоадером, сохраняем в applicationStorageDirectory, затем добавляем на сцену тоже лоадером и все прекрасно работает. Но только в дебаговой версии. Компилируем в ad hoc и ассеты не добавляются. Сами понимаете, нормальных трейсов в таком режиме нет, Монокль для iOS не распространяется, ошибок нет, приходится обходиться визуальными трейсами в самописном окне. Пробуем понять причину: bgInfo //это полученный после загрузки swf LoaderInfo и судя по размеру totalBytes там все как нужно _background = new (getSkinClass(bgInfo, "mcBG"))() as DisplayObject; _background.x = (stage.stageWidth - _background.width) / 2; _background.y = (stage.stageHeight - _background.height) / 2; addChild(_background); bgInfo.applicationDomain.getQualifiedDefinitionNames().length;// здесь у нас NaN getDefinitionNames(bgInfo);//это класс etc, за что ему отдельное спасибо, но тоже не спасет, здесь вообще ничего не происходит, пусто. public static function getSkinClass(asset_info:LoaderInfo, skinAsset:String):Class{ try{ var assetClass:Class = asset_info.applicationDomain.getDefinition( skinAsset ) as Class; return assetClass; } catch(e:Error) { throw new IllegalOperationError( 'getSkinAsset( ' + skinAsset + ' ) - error msg: ' + e.message ); } return null; } Прошу помочь любыми советами, наводками. Добавлено через 10 минут Да и ещё. Те же самые SWF прекрасно загружаются тем же кодом главного приложения, если находятся в папке с приложением (applicationDirectory). Ну это ещё можно перенести. Но совершенное чудо происходит, если сделать такой финт - не скачивать SWF с сервера, а просто скопировать (программно) из папки applicationDirectory в папку applicationStorageDirectory и потом уже от туда добавлять на сцену лоадером (код добавления везде один и тот же, меняются только урлы) - часть ассетов нормально добавляется, часть не добавляется. Без всякой логики и причин.
__________________
In Code We Trust |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 17
|
Привет, не разобрались с проблемой?
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 17
|
Видимо ключевой момент, что на сцену надо добавлять? через getDefinition из библиотеки не получится вытянуть? у меня не получается на устройстве.
|
|
|||||
|
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
Добавлять на Stage и брать по имени - это обязательно!
Если Вы задаете linkage, и пытаетесь вытащить картинку с помощью getDefinition, вы используете код(!) загруженной флешки, т.к. создаете класс(!), не важно какой (Bitmap это или Sprite), а использование кода в загруженной флешке запрещено. |
|
|||||
|
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
интересно, не знал )
|
|
|||||
|
Приветствия. Подскажите пожалуйста. У меня схожая проблема, надо загрузить на iPad swf`ки, при этом они чаще всего содержат код - который можно ( и нужно ) игнорировать. Можно ли это сделать не получая ошибки, если это не возможно то, есть ли возможность "отрезать" весь код на стороне сервера? Спасибо.
|
|
|||||
|
Цитата:
__________________
In Code We Trust |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|