使用XMLSocket在Flash和本地程序之间进行通讯
在实际应用中经常会用到flash页面和本地exe程序或者ActiveX程序进行交互的情况。目前有两种方法:
1. flash <-> javascript <-> activex
这种应用中,本地exe程序必须是一个进城外的com控件,不仅制作成本高而且代码间的耦合度高。
2. flash <-> XMLSocket <-> exe
这种应用中,本地exe程序比较独立,flash和exe程序之间可以采用socket通讯的方式进行。本文详述这种方法的实现。
既然是Socket通讯,就必须有一个server和一个client。本文采用C#的TCPServer作server端简单范例,其他语言的程序类似。而client端则是flash的XMLSocket应用。
采用这种方法的关键是XMLSocket的安全策略检测。总结一下XMLSocket的安全策略检测,检测过程为:
1,首先检测目标服务器的843端口是否提供安全策略
2,如果843端口没有检测到策略,则检测actionscript是否使用了Security.loadPolicyFile(xmlsocket://) 手段提供安全策略,如果还没检测到,则使用第3步检测
3,检测目标服务器目标端口是否提供安全策略
可以参考这篇文章,有策略检测过程详述及Linux下Python实现的例子。
本文直接采用目标服务器端口提供安全策略的方式。
C#服务器端代码:
TCP Server端
TcpListener server = null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
&
相关文档:
设置flash置底,加个代码:<param name="wmode" value="opaque" />但是只加这个代码,IE可行,在FF下,失效。要想在FF下起作用,还要用在object 里加个 wmode="opaque" ,12实例代码如下:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockw ......
前台代码
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width='<%=focus_width %>' height='<%=swf_height %>'>
<pa ......
Flash 又分为 Nor Flash 和Nand Flash 两种。 它们之间的不同在于: Nor Flash 支持芯片内执行(XIP,
eXecute In Place), 这样代码可以在Flash上直接执行而不必拷贝到RAM中去执行。而Nand
Flash并不支持XIP, 所以要想执行 Nand Flash 上的代码,必须先将其拷贝到 RAM中去,然后跳到 RAM 中去执行。 ......
假设我有一个swf,要点击新开窗口
我先用AS3,navigateToURL方法新开窗口在IE8里面会被拦截
link_btn.addEventListener(MouseEvent.CLICK,ClickTag);//link_btn为一个实例,给它加一个点击事件的监听
private function ClickTag(e:MouseEvent):void{
navigateToURL(new URLRequest("http://www.sn110.cn/serv/apply.a ......
目前来讲,我依然还不会做一个小游戏出来。做游戏需要知道很多东西,这个flash 只是一个自娱自乐的东西。要是看了误导就别怪了。
好,制作这个东西之前,其实这篇文章有一些重复了,不过只是一种demo式的演示。通过键盘来控制控制一个人物走动。
上面是一张透明的png位图。有四个不同的方向。可以看到 基本上上下 ......