Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№110-07-2008 12:55:31

SlavaV
Участник
 
Группа: Members
Зарегистрирован: 18-05-2008
Сообщений: 30
UA: IE 7.0

Кто поможет с xpcom?

Работаем с флешем. Есть на страничке swf-ка
И из моего расширения надо взять значение переменной в ней.

я и беру:
  var movie = window.content.document.embeds[swfIndex].wrappedJSObject;
  var value = movie.GetVariable(variable);

и все хорошо.

Но возникла надобность сделать это их сишного xpcom
И какие бы варианты кода я не писал (найденного в сети) и что бы я не делал при вызове GetVariable либо просто не срабатывает, но чаще всего просто программа валится с "любимой" сишной ошибкой "0x00000005". Причем объекты вроде в порядке - я могу добыть все свойства этого movie. Только функцию не позвать

Ежели кто делал подобное - пришлите образец вызова второй строчки
var value = movie.GetVariable(variable);

Чесслово - заработает - пойду пошлю вам сотку баксов, достало уже...

Свой код не привожу - там уже такое мясо... а толку 0

Отсутствует

 

№213-07-2008 13:29:58

XuTMAH
Участник
 
Группа: Members
Зарегистрирован: 23-05-2007
Сообщений: 32
UA: Foxware 0.0

Re: Кто поможет с xpcom?

Если этот GetVariable вызывается нормально только из JavaScript, то можно сделать обёртку для него. Создать интерфейс для XPCOM компонента, реализовать его на JavaScript и оттуда вызвать функцию GetVariable, а уже из плюсов вызывать обычным способом функцию из этого XPCOM компонента.

Отсутствует

 

№317-07-2008 11:46:56

SlavaV
Участник
 
Группа: Members
Зарегистрирован: 18-05-2008
Сообщений: 30
UA: IE 7.0

Re: Кто поможет с xpcom?

Непойдет... надо бы именно на сях

Отсутствует

 

№417-07-2008 16:59:10

XuTMAH
Участник
 
Группа: Members
Зарегистрирован: 23-05-2007
Сообщений: 32
UA: Firefox 2.0

Re: Кто поможет с xpcom?

Это самый простой способ. Т.к. насколько мне известно нативный код из Flash и обратно можно вызывать, только через JavaScript.
А почему не пойдёт?
В требованиях сказано чтобы ни строчки JavaScript'ового кода не было? Основная работа всё равно останется на сях...
Напоследок... В большинстве случаев если объект получается через wrappedJSObject то он преимущественно будет нормально работать только в JavaScript.

Отсутствует

 

№517-07-2008 17:58:36

SlavaV
Участник
 
Группа: Members
Зарегистрирован: 18-05-2008
Сообщений: 30
UA: IE 7.0

Re: Кто поможет с xpcom?

Требования... просто надо побольше работы с флешем спрятать в си. js-то разархивировал и правь-не хочу...
Либо действительно сделать js-функцию с получением переменной и вызывать ее из сей? Так-то можно? 
А можно ли в си-мотоде xpcom-а узнать откуда его позвали? Ну хотябы из какого js-файла...

Отсутствует

 

№617-07-2008 19:29:53

XuTMAH
Участник
 
Группа: Members
Зарегистрирован: 23-05-2007
Сообщений: 32
UA: Foxware 0.0

Re: Кто поможет с xpcom?

Либо действительно сделать js-функцию с получением переменной и вызывать ее из сей? Так-то можно?

Можно. Точнее сделать компоненту на JavaScript и вызывать её из C++.

А можно ли в си-мотоде xpcom-а узнать откуда его позвали? Ну хотябы из какого js-файла...

Наверное... http://www.mozilla.org/scriptable/javascript-stack-dumper.html

Отсутствует

 

№717-07-2008 21:54:12

Forest
Участник
 
Группа: Members
Откуда: Обнинск
Зарегистрирован: 05-04-2005
Сообщений: 1778
UA: Firefox 3.0

Re: Кто поможет с xpcom?

SlavaV

Выделить код

Код:

var movie = window.content.document.embeds[swfIndex].wrappedJSObject;
  var value = movie.GetVariable(variable);

Это вызывается из страницы или из расширения?


---  ---

Отсутствует

 

№807-08-2008 18:08:10

SlavaV
Участник
 
Группа: Members
Зарегистрирован: 18-05-2008
Сообщений: 30
UA: IE 7.0

Re: Кто поможет с xpcom?

Forest
Это вызывается из расширения, из js-файла

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]