最近做一个位图曲线数字化识别项目,整个项目的框架是在c#下的WinForm构建的,需要c#读取数据库生成xml文件。位图曲线数字化识别模块是在flex下做的,生成的swf文件在flash player下运行正常。swf文件加载xml文件读取曲线信息,处理数据后需要向c# winForm 返回处理结果。
我在c#中导入swf文件如下
Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AxShockwaveFlashObjects;
using ShockwaveFlashObjects;
namespace quxian
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
axShockwaveFlash1.Movie= Application.StartupPath + "/cFlex.swf";
}
}
}
cFlex.swf中需要加载的xml文件和曲线位图文件在相同的目录下
问题:当执行winForm程序的时候swf文件只可以看到界面,像xml文件的加载和处理都没有被执行。
flex中加载xml文件部分
Code
public function LoadXML():void
{
var xmlUrl:String="curveData.xml";
loaderXml.load(new URLRequest(xmlUrl));
loaderXml.addEventListener(Event.COMPLETE,loaderXML_onComplete);
}
private function loaderXML_onComplete(e:Event):void
{
this.curveInfo= XML(e.target.data);
this.imageUrl=this.curveInfo..Url.toString();
this.bgBox.title=this.curveInfo..Name.toString();
this.XZlabel.text=this.curveInfo..X.@["unit"].toString();
this.YZlabel.text=this.curveInfo..Y.@["unit"].toString();
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@曲线实际值的界限
this.value_XMAX=this.curveInfo..xMax;
this.value_XMIN=this.curveInfo..xMin;
this.value_YMAX=this.curveInfo..yMax;
this.value_YMIN=this.curveInfo..yMin;
init();
}
AxInterop.ShockwaveFlashObjects.dll
Interop.ShockwaveFlashObjects.dll
在C# winForm中引用flash对象,是不是调用到了flash player????