zoukankan      html  css  js  c++  java
  • c# winform as3相互调用

    C#主要代码:

    首先要添加COM组件-Shockwave Flash Object

            //接收flash发送过来的信息
            private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
            {
                XmlDocument document = new XmlDocument();
                document.LoadXml(e.request);

                XmlNodeList list = document.GetElementsByTagName("arguments");
                LoadTitleAndAuthor(Convert.ToString(list[0].FirstChild.InnerText), Convert.ToString(list[0].ChildNodes[1].InnerText));
            }
            public void LoadTitleAndAuthor(string title, string author)
            {
               textBox2.Text=title + "," + author;
            }
            //向flash发送信息
            private void sendToFlash_Click(object sender, EventArgs e)
            {
                this.axShockwaveFlash1.CallFunction("<invoke name="loadMsg" returntype="xml"><arguments><string>" +
                    this.textBox1.Text + "</string><string>男<string></arguments></invoke>");
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                this.axShockwaveFlash1.Movie = Application.StartupPath + "/未命名-4.swf";
            }

    flash文件主要代码as2.0:

    接收有C#发送过来的消息

    import flash.external.ExternalInterface;

    ExternalInterface.addCallback("loadMsg",null,loadMsg);

    function loadMsg(t1:String,t2:String):Void{
            txtName.text=t1;
      txtAge.text=t2;
     }

    向C#窗体发送消息:

    on(release)
    {
     import flash.external.ExternalInterface;
     //trace("metadata received");
     ExternalInterface.call("loadMsg", txtName.text,txtAge.text);
    }

    C#与flash as3.0交互

    as3.0 类文件编写 

    package{
        import flash.display.*;
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.utils.getDefinitionByName;
        import flash.external.ExternalInterface;
        import flash.text.*;

        public class Clas extends MovieClip
        {
            public function Clas()
            {
                btnsend.addEventListener(MouseEvent.CLICK,onclick);
                ExternalInterface.addCallback("setTxt",setTxt);
            }
            
            public function onclick(evt:MouseEvent){
                ExternalInterface.call("toTxt",this.txtsend.text);
            }
            
            public function setTxt(s:String,s2:String)
            {
                this.txtmsg.text=s+"-"+s2;
            }
        }
        
        
        } 

     C#代码的编写与as2.0通信的一样。

    http://www.cnblogs.com/Xingsoft-555/archive/2010/05/09/1731221.html

  • 相关阅读:
    EventLog实现事件日志操作
    可否控制<link type=text/css rel=stylesheet href=style.css>
    强制IE浏览器或WebBrowser控件使用指定版本显示网页2
    C#中的@符号
    C#运算符大全_各种运算符号的概述及作用
    调试时设置条件断点
    C语言:用字符读取流和输出流来读写入数据。(文本文件)
    建立完整的单向动态链表(包括初始化、创建、插入、删除、查找、销毁、输出)
    C语言:创建动态单向链表,创建完成后,输出每一个节点的数据信息。
    C语言:使用realloc函数对malloc或者calloc动态分配的内存大小进行扩展
  • 原文地址:https://www.cnblogs.com/lvcha/p/4054314.html
Copyright © 2011-2022 走看看