C#程序与Flash的接口

原创 2004年10月11日 10:25:00

参照sourceforge的开源项目,数据传输采用WDDX方法把对象及其属性串行化,接收端则解串行化解析出相应的数据。

 

//****************************************************************************
//                       ______
//                    .-"      "-.
//                   /    AOL     /
//                  |              |
//                  |,  .-.  .-.  ,|
//                  | )(__/  /__)( |
//                  |/     //     /|
//        (@_       (_     ^^     _)
//   _     ) /_______/__|IIIIII|__/__________________________
//  (_)@8@8{}<________|-/IIIIII/-|___________________________>
//         )_/        /          /
//        (@           `--------`     AOL FLASH STUDIO.
//****************************************************************************
// @FileName SharpFlash.as
// @Package sharpflash
// @Description C#程序与flash交互的接口,采用Singleton模式,只允许一个接口
// @Author aol
// @Email jeremy1982@21cn.com
// @Create 2004.10.10
// @LastChange 2004.10.11
// @History
//****************************************************************************

class sharpflash.SharpFlash
{
        private static var _instance:SharpFlash;
        
        public static function get instance():SharpFlash
        {
                //trace(_instance);
                if (_instance == null)
                {
                        _instance = new SharpFlash();
                }
                return _instance;
        }
        
        ///////////////////////////////////////////////////////
        
        private var _data:String;
        
        private var watch:Function;
        
        private var wddx:Wddx;
        private var callBackList:Array;
        
        
        //构造函数
        private function SharpFlash()
        {
                wddx = new Wddx();
                this.watch("data",onData);
        }
        
        //属性data,由C#来赋值,flash监视其值的变化
        public function get data():String
        {
                return _data;
        }
        
        public function set data(value:String):Void
        {
                _data = value;
        }
        
        //data变化处理方法
        function onData(prop:String, oldVal:String, newVal:String)
        {
                // _root.result.text = newVal;
                var xml:XML = new XML();
                xml.parseXML(newVal);
                
                var response_xml:XMLNode = xml.firstChild.firstChild;
                
                //回调函数ID
                var tmp:XMLNode = response_xml.childNodes[0].firstChild;
                
                // callback 函数在这个结点里面有一个或者两个参数
                // 通过解析从C#端发送的包的arg结点可以得出参数的数目
                var argCount:Number = response_xml.childNodes[1].childNodes.length;
                // _root.result.text = argCount;
                switch (argCount)
                {
                        case 1:
                        var arg1_wddx_xml:XML = new XML();
                        arg1_wddx_xml.parseXML(response_xml.childNodes[1].childNodes[0].firstChild);
                        var funcArgs = new Array(1);
                        funcArgs[0] = wddx.deserialize(arg1_wddx_xml);
                        
                        // 执行
                        callBackList[tmp].callback.apply(callBackList[tmp].scope, funcArgs);
                        
                        // debug 代码:
                        // _root.result.text = "1 Arg Result: [0] = " + funcArgs[0];
                        break;
                        
                        case 2:
                        var arg1_wddx_xml:XML = new XML();
                        arg1_wddx_xml.parseXML(response_xml.childNodes[1].childNodes[0].firstChild);
                        var arg2_wddx_xml:XML = new XML();
                        arg2_wddx_xml.parseXML(response_xml.childNodes[1].childNodes[1].firstChild);
                        var funcArgs:Array = new Array(2);
                        funcArgs[0] = wddx.deserialize(arg1_wddx_xml);
                        funcArgs[1] = wddx.deserialize(arg2_wddx_xml);
                        
                        // 执行
                        callBackList[tmp].callback.apply(callBackList[tmp].scope, funcArgs);
                        
                        // debug 代码:
                        //_root.result.text = "2 Arg Result: [0] = " + funcArgs[0] + "/n[1] = " + funcArgs[1];
                        break;
                        default:
                        break;
                }
        }
};
 
一个小示例,由C#得出当前程序所在路径。
                

C#与flash通信和交互的小项目源代码

寒假做的一个小项目,实现 .net 与flash 之间的交互和相互操作,现在发布分享,还望高手指正,具体细节我会在以后讲解,如果还有疑问的话,欢迎与我联系。说明C#,flash相互操作的demo ,使...
  • yctccg
  • yctccg
  • 2016年08月16日 10:39
  • 816

flash和c#通信

要实现flash与其他应用程序通信首先必需要了解flash中fscommand函数,格式为:fscommand函数可以使 SWF 文件与 Flash Player 或承载 Flash Player 的...
  • snlei
  • snlei
  • 2011年07月13日 14:40
  • 3273

WinForm中调用FLASH中的方法

1。首先需要添加FLASH相关的引用,在工具箱添加新项
  • qimeiyun
  • qimeiyun
  • 2014年09月09日 16:57
  • 826

FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法(ZZ)

转自http://hi.baidu.com/zengzhaonong/blog/item/6de41c4f99e5cd3dafc3abc6.htmlFLASH连接CPU时,根据不同的数据宽度,比如16...
  • mmz_xiaokong
  • mmz_xiaokong
  • 2011年04月20日 12:13
  • 1104

CFI(Common Flash Interface)详解

【什么是CFI】CFI(Common Flash Interface),是JEDEC(Joint Electron Device Engineering Council,电子器件工程联合委员会)制定的...
  • EMMA3SLP
  • EMMA3SLP
  • 2010年05月14日 14:02
  • 2740

Verilog语法_7(SPI接口驱动)

September 24, 2016 作者:dengshuai_super 出处:http://blog.csdn.net/dengshuai_super/article/details/52...
  • dengshuai_super
  • dengshuai_super
  • 2016年09月29日 19:09
  • 5019

MFC和Flash的完整通讯

      笔者在进行MFC和Flash的美化&通讯方面,以一个初级入门的情况,经历了几近一个月的奋战,终于在浩瀚的谷歌百度和MSDN中整合出了完整的美化&通讯实例,放置在Blog中,以备自己需要和提...
  • yeqiu712
  • yeqiu712
  • 2010年09月14日 21:32
  • 4639

NAND FLASH学习笔记之nand flash基础(一)

一、 Nand Flash的几个重要的基本特性: 1.                 NandFlash的IO接口         对于Norflash、dram 之类的存储设备,CPU 可以直接通...
  • hellomxj1
  • hellomxj1
  • 2014年02月08日 14:18
  • 5345

C#与 Flash 程序开发

  可以尝试以下关键字进行搜索查找其他资料关键字(C#, FLASH, winform,flash嵌入C#...
  • lizhifiy
  • lizhifiy
  • 2008年03月18日 16:06
  • 973

c#播放flash动画

  • u011854789
  • u011854789
  • 2016年10月07日 19:27
  • 590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#程序与Flash的接口
举报原因:
原因补充:

(最多只允许输入30个字)