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:
C#部分
其他内容可以参阅Adobe的示例:
http://www.adobe.com/go/learn_programmingAS3samples_flash_cn --------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:Flash ActionScript 学习手记之ExternalInterface的使用
- 独立博客:李大仁博客
- 永久链接:http://www.lidaren.com/archives/304
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
现在开发基本结束,发布一下我的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
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
相关文章推荐
- Atlas学习手记(5):使用服务端定时控件TimerControl
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- Atlas学习手记(21):使用行为增强用户界面(一):Click Behavior
- Atlas学习手记(12):使用CascadingDropDown控件
- Atlas学习手记(16):使用PasswordStrength检测密码强度
- Atlas学习手记(5):使用服务端定时控件TimerControl
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- Atlas学习手记(6):使用Atlas UpdateProgress控件
- Atlas学习手记(17):使用FilteredTextBox过滤字符
- Atlas学习手记(10):使用AlwaysVisibleControl Extender
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- Atlas学习手记(6):使用Atlas UpdateProgress控件
- Atlas学习手记(11):使用ModalPopup Extender
- Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
- Atlas学习手记(6):使用Atlas UpdateProgress控件
- Atlas学习手记(5):使用服务端定时控件TimerControl
- Atlas学习手记(11):使用ModalPopup Extender
- Atlas学习手记(14):使用ToggleButton Extender来装扮CheckBox
- Atlas学习手记(16):使用PasswordStrength检测密码强度
- linux使用学习手记[不断更新]