Flex通信篇——Flex和外部应用程序进行通信
Flash To EXE
Flex端
Flex创建一个Flex Project命名为Demo1,类型选Web application(runs in Flash Player)
在Demo1.mxml上添加一个按钮,并未按钮添加点击事件
private function ButtonClick(event:MouseEvent):void
{
//调用外部程序SayHello方法,并传入方法参数"Hunk",输出方法返回值result
if (!ExternalInterface.available) return ;
var result:String = ExternalInterface.call("SayHello", "Hunk");
trace(result);
}
EXE端
VS2008创建window应用程序项目
打开默认的窗体,向窗体添加ShockwaveFlashObject控件
向窗体添加下面代码,为ShockwaveFlashObject控件注册FlashCall事件接收Flash发送过来的请求
protected override void OnLoad(EventArgs e)
{
if (m_Init) return;
m_Init = true;
string swfPath = Path.Combine(Application.StartupPath, ConfigurationManager.AppSettings["SwfPath"]);
if (System.IO.File.Exists(swfPath))
{
axShockwaveFlash1.FlashCall += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEventHandler(axShockwaveFlash1_FlashCall);
//通过配置文件加载Demo1.swf
axShockwaveFlash1.Movie = System.IO.Path.Combine(Application.StartupPath, swfPath);
}
}
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
try
{
//当点击Demo1.swf的按钮时,该方法就会被触发,这里需要解析swf发送过来的xml请求信息
//e.request格式
//<invoke name="SayHello" returntype="xml"><arguments><string>Hunk</string><
相关文档:
经常在Demo中会看到列表,表格等方式来显示数据。当然有时候也需要添加数据到这些列表或者表格中。有很多方式提交,这里展示一个弹出窗口的方式来添加新的数据到DataGrid中。
例子展示:
首先,我们开始建设一个基本的界面结构,一个带有“Notes"标题的Panel,一个DataGrid,以及一个用于提交数据的按钮。
Xml代码
& ......
最近在项目中遇到flex跨域访问的安全沙箱问题,查资料了解到需要在服务端加上crossdomain.xml文件,即:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-do ......
解决使用Flex 无法使用trace的问题
出现了使用Debug功能出现了无法使用trace的问题
这个问题说明你的Flash Player 10 不是调试版本
提供一下Adobe Flas Player 10调试版本的地址....
希望能对大家有帮助
http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe
......
自定义类(BroadCastMarquee.as):
package marquee
{
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFiel ......
今天突发奇想,想试一试Flex的保存功能,知道FileReference这个类里面直接就有save方法,API也说的很清楚,可是FB里面死活就是找不到这个方法,无奈上网一找才发现原来这个功能是Flash10的功能,而我的FB的默认配置是Flash9,具体修改方法:点项目属性->FLex Compiler->Requiment Flash Player Version改为10.0.0就可 ......