Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инжект и выполнение кода 
:(
    Опции темы
RinOSpro
Дата 17.8.2010, 15:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет  Пусть вас не шокирует название топика я не ошибся форумом  знаю что это не форум по asm))

В общем есть флеш игра, я хочу написать к ней бота. Загружаю ее через Delphi -> TShockwaveFlash.

Там есть функции SetVariable, GetVariable, CallFunction возможно какие то еще которые мне не известны, к примеру через SetVariable/GetVariable я могу получать/изменять значение свойств любого мувика.

Но вот назначить функцию на событие не получается...

SetVariable('_root.btnsave.onPress', 'function(){fscommand(''test'', ''test'');}');
Команда отрабатывет без ошибок но onPress не работает... 

А вот при попытке получить onPress получаю ошибку
code = GetVariable('_root.btnsave.onPress');

Что касается CallFunction то с ним не разобрался...

Можно ли во флеш выполнить свой код?
  Вверх
SoWa
Дата 18.8.2010, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Цитата(RinOSpro @  17.8.2010,  15:59 Найти цитируемый пост)
А вот при попытке получить onPress получаю ошибку

Какую ошибку получаешь?

Вот не знаю, если флеш-приложение на ас3, то код присвания на onPress будет работать, но результата от этого ноль.
В ас3 надо addEventListener делать... В любом случае, выясни на каком ас написана игра и покажи ошибку.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
RinOSpro
Дата 18.8.2010, 09:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(SoWa @  18.8.2010,  07:51 Найти цитируемый пост)
Вот не знаю, если флеш-приложение на ас3, то код присвания на onPress будет работать, но результата от этого ноль.


Присваивание и работает) а вот при GetVariable('_root.btnsave.onPress') ошибка...

Цитата

Exception class EOleException with message 'Unspecified error'. 



  Вверх
RinOSpro
Дата 18.8.2010, 09:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ой... вот сейчас все сделал по новой... и ошибку уже не выдает.. но впрочем и не работает)

Пример во вложении 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Primer.rar 210,20 Kb
  Вверх
RinOSpro
Дата 18.8.2010, 09:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уже хорошо) Вот теперь как бы сделать так что бы заработало))

Это сообщение отредактировал(а) RinOSpro - 18.8.2010, 09:49
  Вверх
RinOSpro
Дата 18.8.2010, 12:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Во флеш можно установить обработчик на onPress таким образом:

Код

_root.btn1.onPress = function()
{
    _root.dbgtext.text = "ура";
};

// Но когда устанавливаем обработчик из делфи через GetVariable то это похоже на установку строки...:

_root.btn1.onPress = 'function() { _root.dbgtext.text = "ура"; }; '


  Вверх
SoWa
Дата 18.8.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Нет, ты все же понимаешь, что если проект на AS3, то работать это не должно по определению?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
RinOSpro
Дата 18.8.2010, 13:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В примере во вложении AS2. 
  Вверх
SoWa
Дата 18.8.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Слушай, ты меня так заинтересовал, что я решил посмотреть всерьез.
Правда Дельфи у меня уже лет пять как нету...

Итак, я что-то не понимаю наверно...
В Дельфи я вижу такой код:
Код

const
  as_function: WideString = 'on (press) { fscommand('''', 0); }';

procedure TForm1.Button1Click(Sender: TObject);
var
  OldProc: WideString;
begin
  ShockwaveFlash1.LoadMovie(0, ' ');
  ShockwaveFlash1.LoadMovie(0, ExtractFilePath(ParamStr(0)) + 'test.swf');

  ShockwaveFlash1.SetVariable('_root.btn1.onPress', as_function);
  ShowMessage(ShockwaveFlash1.GetVariable('_root.btn1.onPress'));
end;

Ты задал константу с тем, что будешь инжектить в флеш. Почему-то сейчас там не лямбда-функция, а странная для флеша конструкция. Вот это:
Код

_root.btn1.onPress = on (press) { fscommand('''', 0);

флеш не поймет, хоть ты тресни.

Второе, что меня смутило - 
Код

  ShockwaveFlash1.SetVariable('_root.btn1.onPress', as_function);
  ShowMessage(ShockwaveFlash1.GetVariable('_root.btn1.onPress'));

Вроде оно работает корректно, т.е. ShowMessage мне сообщает "on (press) { fscommand('''', 0);"

Третье: в первом посте ты писал лямбда-функцию, в которой вызывал fscommand. Зачем? Почему бы сразу не вызывать fscommand.
Т.е.
SetVariable('_root.btnsave.onPress', 'fscommand(''test'', ''test'');');

Добавлено через 5 минут и 3 секунды
_root.btn1.onPress = fscommand('test','test');

Вот так работать будет. Запиши это в константу.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
RinOSpro
Дата 19.8.2010, 08:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(SoWa @  18.8.2010,  18:46 Найти цитируемый пост)
fscommand.Т.е.SetVariable('_root.btnsave.onPress', 'fscommand(''test'', ''test'');');

Все равно не работает. То есть функция записывается но выполняться она не собирается... и я кажется понял по чему.

Во флеш сделал кнопку которя устанавливает точно такую же функцию как и в делфи:

_root.btn1.onPress = function() { _root.dbgtext.text = "yrraa"; };

Запускаем из делфи эту флеху и нашимаем эту кнопку во флеш. Все работает)
Но установку точно такой же строки из делфи не работает.

И так нажимаем на эту кнопку во флеш. И потом нажимаем в делфи GetProc и видим сообщение:

[type Function]? если же нажмем SetProc то при нажатии на GetProc видим "function() { _root.dbgtext.text = "yrraa"; };"

Это говорит о том что мы устанавливаем Cтроку, а флеш Функцию...

Короче надо копать в другом направлении...


Это сообщение отредактировал(а) RinOSpro - 20.8.2010, 07:55

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Primer.rar 212,87 Kb
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.3825 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.