可以尝试以下关键字进行搜索查找其他资料 添加控件注意 Movie: flash 的存放地址
namespace flashShell2 在 Flash 的 ActionScript 中,可以通过 FSCommand 函数与 hosting app 通信,该函数有两个参数,分别是: command: 命令名称 例子:
on(press){ fscommand( " Circule " , " Green " ); } 在 C# 中,处理 flash 对象的 FSCommand 事件即可。 e.command -> flash 中调用 FSCommand 时的 command 参数; 在 C# 中往 Flash 传递数值用 SetVariable 方法:
axShockwaveFlash1.SetVariable(
"
variablename
"
,
"
valueasstring
"
);
对应的,有一个 GetVariable 方法可以获得 flash 中的变量值。 FSCommand 的参数只能传递一个,所以其功能存在一定的局限性。在你需要传递多个参数的时候,则需要在调用方用字符串拼接各个参数值,然后在被调用方重新解开。这种办法使得复杂的传值显得很丑陋。 不过,除了 FSCommand 外,我们还有另一种办法和 flash 通信,就是使用 Flash Player 8 External API. 使用 External API,可以实现 ActionScript 和 C# 的双向调用。其好处就在于每次调用时的参数和返回值都通过一个 xml 文档来传递,这样就比 FSCommand 功能完善了很多。当然在 C# 中,我们也需要声明一下外部函数实现的对应关系。 代码片段:
import flash.external.ExternalInterface; ExternalInterface.addCallback( " loadAndPlayVideo " , null , loadAndPlayVideo); C# 中调用 Flash 的情形:
flashPlayer.CallFunction(
"
<invoke
"
+
" name=/ " loadAndPlayVideo/ " returntype=/ " xml/ " > < arguments >< string > " + fileDialog.FileName + " </string></arguments></invoke> " ); 在 ActionScript 中调用 C# 函数:
ExternalInterface.call(
"
ResizePlayer
"
, videoPlayer.metadata.width, videoPlayer.metadata.height); 在 C# 中声明被 Flash 调用的函数:
flashPlayer.FlashCall
+=
new _IShockwaveFlashEvents_FlashCallEventHandler(flashPlayer_FlashCall); 在此,我们可以看到 C# 和 Flash 进行通信还是相当方便的。 除此之外,我顺便搜索到其他一些和 flash 有关的不错的文章: Flash and .NET with FlashRemoting Multiple File Upload With Progress Bar Using Flash and ASP.NET Flash GUI for your exe using minimalistic approach (C++) |
C#与 Flash 程序开发
最新推荐文章于 2024-07-31 16:50:23 发布