Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.01.2017, 06:26
HuoHu вне форума Посмотреть профиль Отправить личное сообщение для HuoHu Найти все сообщения от HuoHu
  № 1  
Ответить с цитированием
HuoHu
 
Аватар для HuoHu

Регистрация: Jan 2017
Сообщений: 5
По умолчанию Выполнение функции из внешнего SWF упаковнное crossbridge

Дорое время суток, есть внешний SWF (External.swf) в котором есть класс CalculateResult
и сама функция расчета в классе импортируется... сделана на др. языке(я так понимаю) с помощью crossbridge.

если подргужаю к себе как класс, то импорты там не работают
Код AS3:
XXX = Class(ldr.contentLoaderInfo.applicationDomain.getDefinition("com.blablabla.CalculateResult"));
var _obj = new XXX();
и так же если погружаю только функцию
Код AS3:
MyCalc:Object = ldr.contentLoaderInfo.applicationDomain.getDefinition("Bla.Xxxx.Calc");

Просьба помочь советом как можно запустить расчет Calc или вытащить функционал упакованный crossbridge.

Старый 11.01.2017, 09:17
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Могу предположить, что этот внешний SWF сначала грузится как байт массив (или уже вшит), а потом грузится через loadBytes() (ибо других способов я не знаю)
Можно попробовать подсунуть ему контекст загрузки вот такой:
Код AS3:
var context = new LoaderContext(true, new ApplicationDomain(ApplicationDomain.currentDomain), SecurityDomain.currentDomain);
 
// а потом загрузить с контекстом
loader.loadBytes(externalBytes, context);
Не уверен, что прокатит для SWF сделанного через cross bridge, но для обычных работает, так что можно и для этого попробовать
__________________
Ко мне можно и нужно обращаться на ты)

Старый 11.01.2017, 17:12
HuoHu вне форума Посмотреть профиль Отправить личное сообщение для HuoHu Найти все сообщения от HuoHu
  № 3  
Ответить с цитированием
HuoHu
 
Аватар для HuoHu

Регистрация: Jan 2017
Сообщений: 5
проверил лоадер, да действительно через loadBytes() . Спасибо большое за оперативный ответ-совет.

Upd:
переписал загрузку через loadBytes(). Увы результат такой же... импорты не прогружаются и соотв вылетают ошибки.

Старый 11.01.2017, 17:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
импорты не прогружаются и соотв вылетают ошибки.
О каких именно импортах идет речь? Может там должна быть еще какая-то либа?
__________________
Ко мне можно и нужно обращаться на ты)

Старый 11.01.2017, 17:57
HuoHu вне форума Посмотреть профиль Отправить личное сообщение для HuoHu Найти все сообщения от HuoHu
  № 5  
Ответить с цитированием
HuoHu
 
Аватар для HuoHu

Регистрация: Jan 2017
Сообщений: 5
Цитата:
Сообщение от caseyryan Посмотреть сообщение
О каких именно импортах идет речь? Может там должна быть еще какая-то либа?
Образно еще раз, в External.swf есть класс CalculateResult, но сама функция-считалка Calc вынесена отдельно и в класс CalculateResult добавляется через import Bla.Xxxx.Calc

при попытке подгрузить к себе получаю примерно подобное Error #1069: Property Calc not found on CalculateResult

Старый 11.01.2017, 18:31
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
import это директива компилятору, где (в какой папке на компьютере) искать файл с описанием класса (или в данном случае функции) чтобы вкомпилировать его в собираемый ролик swf. Тот факт, что импорт написан в классе CalculateResult, никоим образом не означает, что Calc является членом CalculateResult — это по-прежнему самостоятельная сущность. К слову сказать, если она упоминается ТОЛЬКО в импорте и больше нигде, то компилятор ее просто не включит в ролик за ненадобностью. В любом случае, Вам не добраться до нее через CalculateResult, они никак не связаны. Пробуйте более настойчиво через Bla.Xxxx.Calc.
__________________
Reality.getBounds(this);

Старый 11.01.2017, 18:51
HuoHu вне форума Посмотреть профиль Отправить личное сообщение для HuoHu Найти все сообщения от HuoHu
  № 7  
Ответить с цитированием
HuoHu
 
Аватар для HuoHu

Регистрация: Jan 2017
Сообщений: 5
сам Calc написан и вндрен через crossbridge и соотв. там тянет еще кучу всего за собой. В общем способ подгрузки к себе не сработает тогда. Буду думать как реализовать эту считалку на базе родного приложения подменой модулей на свои

Старый 11.01.2017, 19:18
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 8  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
для включения сущности в swf достаточно ее просто упомянуть где-либо в коде, не важно где и как.Просто проверь, что в твоем CalculateResult есть хоть одно упоминание Calc кроме как в импорте.

Старый 12.01.2017, 21:22
HuoHu вне форума Посмотреть профиль Отправить личное сообщение для HuoHu Найти все сообщения от HuoHu
  № 9  
Ответить с цитированием
HuoHu
 
Аватар для HuoHu

Регистрация: Jan 2017
Сообщений: 5
Цитата:
Сообщение от undefined Посмотреть сообщение
для включения сущности в swf достаточно ее просто упомянуть где-либо в коде, не важно где и как.Просто проверь, что в твоем CalculateResult есть хоть одно упоминание Calc кроме как в импорте.
в том то и дело что есть... тихо начинаю ненавидеть этот crossbridge)))

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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