ShockwaveFlash下如何实现Flash与Delphi程序之间变量和消息的交互(200分)

  • 主题发起人 主题发起人 kenmnb2000
  • 开始时间 开始时间
K

kenmnb2000

Unregistered / Unconfirmed
GUEST, unregistred user!
ShockwaveFlash下如何实现Flash与Delphi程序之间变量和消息的交互
请贴源代码好吗
 
通过flash发送fscommand命令来实现。例
flash中可以用fscommand("createwin","100,200,300,300");

在程序中,截获flash的命令,会得到command="createwin",params="100,200,300,300"这样的值对,这里就可以通过约定进行分析了
 
最好你使用TFlashPlayerControl这个外国的控件,这个控件还能除了能得到fscommand命令之外,还能得到flash取得外部图片,html的事件,得到它们要访问的url或文件路径。
可以过滤处理。。。
 
procedure TForm1.FlashPlayerControl1FSCommand(ASender: TObject;
const command, args: WideString);
begin

memo1.Lines.Add(command+'='+args);
end;


procedure TForm1.FlashPlayerControl1LoadExternalResource(ASender: TObject;
const URL: String;
Stream: TStream);
begin

memo1.Lines.Add(url);
end;
 
那我的程序要向Flash送参数呢?
 
TFlashPlayerControl控件从哪里下的?能否共享一下?
 
我只有TFlashPlayerControl控件的试用版
 
呵,这个东西是国外的,大部分是试用版。

你的程序要向flash传参数,就要在那个控件的FlashPlayerControl1LoadExternalResource(ASender: TObject;const URL: String;
Stream: TStream);事件中,把你要传的参数,
创建成流拷贝到这个事件中参数Stream就成了。在flash中就可以得到了,形式可以用
Name=Value格式。
 
if UpperCase(LocalURL) = 'USERNAME' then

begin
//传入用户名
ReaderName:='UserName='+EncryStrHex(sUser,UserDefKey);
sResponesFile := TMemoryStream.Create();
sResponesFile.SetSize(Length(ReaderName)+1);
sResponesFile.Position:=0;
StrCopy(sResponesFile.Memory, PChar(ReaderName));
sResponesFile.SaveToStream(Stream);
FreeAndNil(sResponesFile);
end
 
fscommand命令就可以。
楼主呀,建议你自己去好好看看帮助文档,别人提醒你一下,就应该能够快速找到解决方法。
 
我知道怎么用fscommand,它从Flash传出到程序,但我要的是从程序传入Flash。Flash有loadVariables函数,能从文件读入参数。但我觉得这样太麻烦,有没有直接传递过去的方法呢?
 
这个试试
SetVariable
 
接受答案了.
 
后退
顶部