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

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

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

Регистрация: Nov 2008
Сообщений: 7
По умолчанию Delphi и Flash. Обмен данными

Приветствую форумчан!

Есть задача: замутить визуальный интерфейс в виде флешки, а вычислительные и другие механизмы разместить в коде Делфи.
Как вставить Flash в Delphi я и так знаю: импорт АктивИкс, бла-бла-бла и так далее. Этой начальной инфой весь инет загажен. Меня лишь мучают вопросы о передачи данных между Флешкой и Программой содержащую ее(делфи форма т.е.).
Метод Flash -> Delphi мне извесен - это fsCommand.
А вот метод Delphi -> Flash мне не совсем ясен, а именно то как действуют SetVariable и GetVariable в ActionScript 3.0? Ну вот к примеру почитав это, пришел к выводу что можно делать вот так:
В swf-ролике находится Dynamic Text с именем dtext. В делфи пытаюсь такое сделать
Код:
Memo1.Text:=Flash.GetVariable('dtext.text');
На что мне при выполнении программы выдаются окна с матами и ругательствами.
Вроде на вашем же форуме читал, что для всего этого лучше в AS3 использовать ExternalInterface, но везде примеры показаны для JS а как их реализовать в Delphi - не пойму smile

Помогите пожалуйста, ребята, очень надо

-----------------

Ответ найден:
Спасибо за ссылочку Rzer ^_^
Привожу пример так, как сделал его я.

Во флеш, в AS3, в рут классе пишем примерно такое:
Код AS3:
package  {
	import flash.display.Sprite;
	import flash.external.ExternalInterface;
 
	public class MainClass extends Sprite {
		public function MainClass() {
			ExternalInterface.addCallback("getFromDelphi", getFromDelphi);
			ExternalInterface.call("sendToDelphi", "Delphi, Hello");
		}
		public function getFromDelphi(val:String):void {
			dtext.text = val; // это в ролике у меня лежит Динамический текст с именем "dtext"
		}		
	}	
}
На форму в Delphi кидаем Flash проигрываетль в виде ActiveX(я его обозвал просто Flash) и пишем такое:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Flash.Movie:= ExtractFilePath(Application.ExeName)+'Untitled-1.swf';
end;
//***//
procedure TForm1.FlashFlashCall(ASender: TObject; const request: WideString);
begin
  showmessage(request);
  Flash.CallFunction('<invoke name="getFromDelphi"><arguments><string>Hi, Flash</string></arguments></invoke>');
end;
При запуске программы мы увидим такое сообщение:
Цитата:
<invoke name="sendToDelphi" returntype="xml"><arguments><string>Delphi, Hello</string></arguments></invoke>


Последний раз редактировалось LameAS3; 07.12.2008 в 21:21. Причина: ответ найден
Старый 07.12.2008, 17:50
VovkaMorkovka1 вне форума Посмотреть профиль Отправить личное сообщение для VovkaMorkovka1 Посетить домашнюю страницу VovkaMorkovka1 Найти все сообщения от VovkaMorkovka1
  № 2  
Ответить с цитированием
VovkaMorkovka1

Регистрация: Nov 2008
Сообщений: 205
Поисчи в примерах от адоба, у них реализован сабжевый механизм, с помощью С# правда, но .NET он и в африке .NET

Старый 07.12.2008, 18:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
глянь еще http://www.flasher.ru/forum/showthread.php?t=114163

Старый 07.12.2008, 19:07
LameAS3 вне форума Посмотреть профиль Отправить личное сообщение для LameAS3 Найти все сообщения от LameAS3
  № 4  
Ответить с цитированием
LameAS3

Регистрация: Nov 2008
Сообщений: 7
VovkaMorkovka1, а где эти примеры адобовские?

Старый 07.12.2008, 20:06
VovkaMorkovka1 вне форума Посмотреть профиль Отправить личное сообщение для VovkaMorkovka1 Посетить домашнюю страницу VovkaMorkovka1 Найти все сообщения от VovkaMorkovka1
  № 5  
Ответить с цитированием
VovkaMorkovka1

Регистрация: Nov 2008
Сообщений: 205
Цитата:
Сообщение от LameAS3 Посмотреть сообщение
VovkaMorkovka1, а где эти примеры адобовские?
Ну раз примеры адобовские, то логично предположить, что находятся они на сайте адоба www.adobe.com и далее поиск

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

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
http://atflash.ru/2008/11/externalin...e-visualbasic/ для vb. Для дельфи думаю аналогично.

Старый 07.12.2008, 20:53
LameAS3 вне форума Посмотреть профиль Отправить личное сообщение для LameAS3 Найти все сообщения от LameAS3
  № 7  
Ответить с цитированием
LameAS3

Регистрация: Nov 2008
Сообщений: 7
VovkaMorkovka1
1) это ясень пень, что Адобовский примеры не на Майкрософт лежат =Р
2) уже нашел эти примеры))

Rzer
изучаю документ....

Добавлено через 16 минут
Rzer
Большое тебе СПАСИБИЩЕ!!
Это кАкраз то что я искал!!! Все работает!

В первом топе опишу тоже самое, но в Delphi, чтобы такие же как я нашди решение для граблей своих

Старый 19.12.2008, 17:34
LameAS3 вне форума Посмотреть профиль Отправить личное сообщение для LameAS3 Найти все сообщения от LameAS3
  № 8  
Ответить с цитированием
LameAS3

Регистрация: Nov 2008
Сообщений: 7
Так, теперь у меня есть маленький вопросик:
А как передать во Флэш-функцию несколько параметров?

Старый 19.12.2008, 20:28
VovkaMorkovka1 вне форума Посмотреть профиль Отправить личное сообщение для VovkaMorkovka1 Посетить домашнюю страницу VovkaMorkovka1 Найти все сообщения от VovkaMorkovka1
  № 9  
Ответить с цитированием
VovkaMorkovka1

Регистрация: Nov 2008
Сообщений: 205
опять - же кури примеры

Старый 07.01.2009, 01:53
dhk вне форума Посмотреть профиль Отправить личное сообщение для dhk Найти все сообщения от dhk
  № 10  
Ответить с цитированием
dhk

Регистрация: Oct 2003
Сообщений: 4
Доброго времени суток.
перерыл всё что мог и никак не найду ответа на свой вопрос. в этой теме как бы он затронут, но применить к своему ничего не смог. сам вопрос.
Есть какой-то swf файл (написан не мною и грузится на страничку), отображает какие-то данные. Пишу приложение на delphi в котором загружаю эту флешку и налажива обмен и управление swf файлом с моего приложения.
ShockwaveFlash.SetVariable, ShockwaveFlash.GetVariable и т.п. работает отлично, но вот с функциями проблема.
ShockwaveFlash.CallFunction - ни в какую.. не хочет работать. на все попытки выдает сообщение "Неопознанная ошибка".
Поиски ответа привели меня максимум к подобным вопросам, на который были ответы "Ты наверное перерыл весь инет и ничего не нашел, а заставить работать так и не удалось?"

Вот для наглядности код флешки. Есть какая-то функция
Код:
function newfunc(str)
{
    _root.name = str;
}
Как передать параметер и вызвать эту функцию в делфе. по идее должно быть все с помощью
ShockwaveFlash.CallFunction()
других способов не вижу, может кто делал другим способом?

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

Теги
delphi , externalinterface

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

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


 


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


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