您的位置:首页 > 其它

ActionScript 学习手记之ExternalInterface的使用

2016-08-16 10:39 337 查看
Flash ActionScript 学习手记之ExternalInterface的使用回家之前接到来自学校软件协会的一个开发任务,要求实现.Net与Flash之间的相互操作,具体要求实现C#对flash对象(DisplayObject和DisplayObjectContainer)的操作,包括插入、删除、复制、同时还要实现对象的放大、缩小、旋转、转置,图层移动等等

现在开发基本结束,发布一下我的AS学习手记,说实话,在接到任务之前我是对flash和AS一窍不通,不过现在通了是通了一窍了,哈哈。

源代码可以参阅http://www.lidaren.com/archives/301

Flash ActionScript 学习手记一ExternalInterface的使用,实现与C#的相互操作

flash AS使用API XML来实现与Flash控件的通信具体的格式使用如下:

外部调用Flash的方法函数

<invoke name="functionName" returntype="xml">

??? <arguments>

??????? ... (individual argument values)

??? </arguments>

</invoke>

返回结果(XML)

<type></type>

支持以下类型:

<null />

<true /><false />

<string></string>

<number></number>

<array></array>

invoke节点中的属性 “name”表示访问的函数名,“RETURNType”表示返回结果

类型,目前AS3支持Byte, XML和JSON

argument节点表示输入参数,可以是一个或者多个,必须与被调函数的参数列表相同

以下是Flash与C#交互的demo

Flash ActionScript:

import flash.external.ExternalInterface;

//调用C#函数

//flash2Csharp函数名,参数"test"

ExternalInterface.call ("flash2Csharp", "test");

//注册C# 回调函数

//Csharp2flash函数名

ExternalInterface.addCallback ("Csharp2flash",Csharp2flash);

//注册函数

function Csharp2flash (s:String)

{

trace(s);

}


C#部分

public class Form1 : Form

{

//...

....

//...

private AxShockwaveFlashObjects flash = new AxShockwaveFlashObjects();

private void Form1_Load(object sender, EventArgs e)

{

flash.Movie = "test.swf"; //设置flash控件的播放文件

flash.FlashCall +=

new AxShockwaveFlashObjects

._IShockwaveFlashEvents_FlashCallEventHandler(flash_FlashCall);

//添加flashcall事件

this.CallFlash();

}

//flashCall,flash调用C#中的函数

private void flash_FlashCall

(object sender,

AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)

{

XmlDocument xml = new XmlDocument();

xml.LoadXml(e.request);

XmlNodeList list = doc.GetElementsByTagName("arguments");

string s =

list[0].ChildNodes[0].InnerText.ToString();

//解析XML

this.flash2Csharp(s);

}

private void CallFlash()

{

//C#调用Flash

flash.CallFunction("test");

}

private void flash2Csharp(string s)

{

MessageBox.Show(s);

}

}


其他内容可以参阅Adobe的示例:
http://www.adobe.com/go/learn_programmingAS3samples_flash_cn --------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:Flash ActionScript 学习手记之ExternalInterface的使用
- 独立博客:李大仁博客
- 永久链接:http://www.lidaren.com/archives/304
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: