易截截图软件、单文件、免安装、纯绿色、仅160KB

C# winform与 flash as 的交互通讯

一、基本原理及过程
Flash通过ExternalInterface类与容器应用程序进行通信。为此,ExternalInterface类提供两个静态属性和两个静态方法。
ExternalInterface.call(“函数名”,[参数…])方法执行容器应用程序的代码,该方法至少需要一个字符串参数来指定要调用的函数名,其它任何参数将作为参数被传递给被调用函数。在除浏览器外的其它容器中,此方法调用将导致flash player ActiveX控件的flashcall事件发生。Flash Player 将指定的函数名及所有参数序列化为一个 XML 字符串。容器可以在事件对象的 request 属性中访问该信息,并用它来确定如何执行它自己的代码。为了将值返回 ActionScript,容器代码调用 ActiveX 对象的 SetReturnValue() 方法,并将结果(序列化为一个 XML 字符串)作为该方法的参数进行传递。——以上摘自帮助文档
其基本过程为:flash调用—>flash自动将参数打包为xml—>将xml传递给C# —>C#解析参数得到函数名与参数值—>执行C#函数—>将返回值打包为xml—>将xml文件发送回flash—>flash自动解析xml得到返回值
从容器中调用 ActionScript 代码必须执行两项操作:向 ExternalInterface 类注册函数,然后从容器的代码调用它。在运行于台式机应用程序中调用 ActionScript 函数时,必须将已注册的函数名及所有参数序列化为一个 XML 格式的字符串。然后,将该 XML 字符串作为一个参数来调用 ActiveX 控件的 CallFunction() 方法,以实际执行该调用。
其基本过程为:flash中注册函数——将要调用的函数名、参数等信息打包为xml—>将xml传递到flash中执行调用—>执行ActionScript函数—>flash自动将结果打包为xml—>将结果xml传递回C# —>C#解析xml得到返回值
可见,flash与C#通信是通过特定格式的xml文件进行的,因此为了实现通信,C#必须实现一下功能:识别该xml格式以得到flash发送来的信心,将需要传送给flash的信息打包成flash能识别的xml格式。为了使用方便我们可以设计一个代理类专门负责数据的解析与打包工作,这样我们就可以透明的使用该代理类来实现flash与C#间的互相调用。
在flash的示例中有一个IntrovertIM_CSharp项目较好的实现了代理的编写,一般情况下,使用该示例中的ExternalInterfaceProxy类足以满足要求,因此方便起见我也直接采用了该代理类。
该类的使用非常简单


相关文档:

C#中C/C++程序员注意问题

1、C/C++程序员请注意,不能在case语句不为空时“向下执行”。
  2、值类型和引用类型之间的区别:C#的基本类型(int,char等)都是值类型,是在栈中创建的。而对象是引用类型,创建于堆中,需要使用关键字new。
  3、在C#中通过实例访问静态方法或成员变量是不合法的,会生成编译器错误。但是我们可以通过声 ......

声音冲突及firefox中flash中汉字显示问题解决


声音冲突:
    调试好计算机以后发现自己的播放器播放音乐的时候打开优酷没有声音,而打开优酷的时候自己的播放器竟然也没有了声音,从网上查到是因为声音冲突抢占声卡的问题。
    从首选项中选择音效,把所有的输入模式都改为ALSA就可以把问题解决了。不错吧!
    u ......

flash import mx.transitions.Tweens;使用

flash mx.transitions.Tween;可以实现类似于补间动画的效果;导入该类:
import mx.transitions.Tween;
然后用new Tween()方法即可实现。New Tween()方法格式:
new Tween(要应用补间的MC,要应用补间的MC的属性,缓动效果,属性的初始值,属性的结束值,补间的长度,补间长度的类型)
下面介绍一下new Tween()方 ......

去除Firefox 3.6中flash与java applet对象的虚线框

在Firefox 3.6中,当焦点在flash或者java applet对象上时,会出现一个环绕对象的虚线框,当将flash与java applet对象的大小设成100%时,点击对象后页面会出现滚动条,影响显示效果,解决的方法是使用如下的css定义:
:focus {
outline: 0;
}
这样在各个不同的浏览器中显示的效果都能保持一致。 ......

flash测试 缓存1

flash测试有个麻烦的事情总是要清缓存
后来发现IE有设置可以每次取最新的
打开internet选项
浏览历史记录 下点设置
然后在 检查所存网页的较新版本 设置为 每才访问网页时
这样设置以后 有更新的话 ie 就能自动取最新的了,以后就不需要清缓存了,方便了很多啊 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号