读书人

flash和C#通信有关问题

发布时间: 2013-03-13 10:56:58 作者: rapoo

求助flash和C#通信问题
各位大大我想实现如下:
1 用wpf加载flash程序 成功,但是flash不能显示完全,有部分显示不出,不能全屏显示
2 C#和flash通信 我想把图片转换成字符串发送给flash flash收到后显示出来,我现在把字符串发到txt能显示出字符串,但发到flash上没效果。
3 就是我通过callfuncation发送字符串时总是报"对 COM 组件的调用返回了错误 HRESULT E_FAIL"。
求各位大大帮我看看如何解决 代码如下


public MainWindow()
{
InitializeComponent();

string flashPath = Environment.CurrentDirectory;
flashPath += @"\Binary2CTest.swf";
flashShow.Movie = flashPath;
}

public string EncodeInvoke(string Fname, string arg)
{
StringBuilder sb = new StringBuilder();
XmlTextWriter xw = new XmlTextWriter(new StringWriter(sb));

xw.WriteStartElement("invoke");
xw.WriteAttributeString("name", Fname);
xw.WriteAttributeString("returntype", "xml");

xw.WriteStartElement("arguments");
xw.WriteStartElement("string"); //此处直接创建string类型,没做别的类型判断
xw.WriteString(arg);
xw.WriteEndElement();
xw.WriteEndElement();

xw.WriteEndElement();

xw.Flush();
xw.Close();
return sb.ToString();

}


private void Window_Loaded(object sender, RoutedEventArgs e)
{
Stream stream = File.Open("1.jpg", FileMode.Open);
int leng = 0;
if (stream.Length < Int32.MaxValue)
leng = (int)stream.Length;
byte[] by = new byte[leng];
stream.Read(by, 0, leng);//把图片读到字节数组中
stream.Close();
string str = Convert.ToBase64String(by);//把字节数组转换成字符串


flashShow.CallFunction(EncodeInvoke("sendImg",str));
}


[解决办法]
本帖最后由 net_lover 于 2012-02-23 15:39:23 编辑 你可以参见
http://www.codeproject.com/Articles/12010/Fun-with-C-and-the-Flash-Player-8-External-API


http://www.silverlightshow.net/items/Silverlight-and-Flash-Interoperability-using-HTML-Bridge-and-ExternalInterface-API.aspx


http://blogs.msdn.com/b/jijia/archive/2007/06/07/wpf-flash-activex.aspx
试试
[解决办法]
引用:
还有个问题就是我的程序在自己电脑上运行正常在其他电脑上就提示应用程序异常 我是用VS2010写的win7下

你对flash player的版本是否有要求?

关于你调用失败的原因,可以从2个方向考虑:
1. 先试试简单的调用是否OK?
2. 然后就是考虑调用时机的问题,你把Load中的调用放到Button中,确认Flash已经播放后然后点Button试试

读书人网 >C#

热点推荐