Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C调用ActionScript 3函数#_C#_Winforms_Flash_Actionscript 3 - Fatal编程技术网

C# 从C调用ActionScript 3函数#

C# 从C调用ActionScript 3函数#,c#,winforms,flash,actionscript-3,C#,Winforms,Flash,Actionscript 3,我有一个嵌入在Windows窗体中的Flash电影(使用Visual Studio 8附带的组件“Shockwave Flash Object”)。Flash电影是用Flash CS4创建的,使用ActionScript 3 是否可以使用C#调用Flash电影中返回值的ActionScript函数 另外,我的Flash电影是否可以在主应用程序中调用返回值的C函数?ExternalInterface.addCallback(functionName:String,closure:function)

我有一个嵌入在Windows窗体中的Flash电影(使用Visual Studio 8附带的组件“Shockwave Flash Object”)。Flash电影是用Flash CS4创建的,使用ActionScript 3

是否可以使用C#调用Flash电影中返回值的ActionScript函数


另外,我的Flash电影是否可以在主应用程序中调用返回值的C函数?

ExternalInterface.addCallback(functionName:String,closure:function):void注册一个actionscript方法,以便从其容器中调用

我不确定它是否能够返回一个值。我的想法是这样做行不通。如果是这样,您可以执行另一个ExternalInterface.call,它将您想要的信息作为参数发送给容器


我不知道如何从C#调用,但我看到我的一位同事为我们正在进行的一个flash安装项目调用了它,所以我知道这是可能的……一些方法!

为了使ActionScript函数可以从flash播放器的主机调用,您必须使用ExternalInterface.addCallback函数,例如乐:

ExternalInterface.addCallback("testCallback", function (text : String) : String
{
    var helloText : String = "Hello, " + text;
    myTextField.text = helloText;
    return helloText;
});
为了在C#中从Windows窗体应用程序调用此函数,必须使用Flash player组件公开的CallFunction方法。该方法有一个字符串参数,该参数必须包含描述调用的XML;它返回一个字符串,该字符串包含描述返回值的XML。使用上面的示例,此调用testCallback函数的方法如下:

textBox1.Text = flash.CallFunction("<invoke name=\"testCallback\" returntype=\"xml\"><arguments><string>" + textBox1.Text + "</string></arguments></invoke>");
这将使Flash player引发FlashCall事件并调用您的事件处理程序。您的处理程序接收的事件参数有一个名为“request”的公共字段,其类型为string。request字段包含一个描述Flash调用的XML。对于上面使用的示例,它如下所示:

<invoke name="MyCSharpFunction" returntype="xml"><arguments><number>17</number></arguments></invoke>
17
如果您希望返回一个值,那么在FlashCall事件处理程序中需要做的就是在事件处理程序返回之前调用FlashPlayer的SetReturnValue方法,将描述返回值的XML字符串传递给它,例如:

<string>Works like a charm!</string>
工作起来很有魅力!

请查看下面给出的链接,您将为您的问题找到合适的解决方案。您的要求将得到满足。

谢谢!这正是我想要的。SetReturnValue节省了时间!谢谢!@Vojislav Stojkovic您能看一下吗
<string>Works like a charm!</string>