这会将嵌入式 swf 资源作为二进制内存流直接加载到表单嵌入式 Flash 播放器 COM 对象中(不创建临时文件)。请注意,SWF 的功能将仅限于“标准”Flash Player 沙箱,您不能以这种方式嵌入和运行使用桌面/扩展桌面的 AIR swf。
我创建了一个包含完整代码和示例 swf的GitHub 项目。
1) 将 AIR 应用程序编译为 SWF
2) 创建一个新的 C# Forms 项目
3) 在解决方案资源管理器中,右键单击“参考”并从 COM 选项卡中添加“ShockWave Flash”
4) 在解决方案资源管理器中,右键单击项目并选择“属性”。在新打开的表单中选择“资源”选项卡并将您的 SWF 添加为资源。
5) 从工具箱的“常规”选项卡中,将“ShockWave Flash”组件拖放到表单上
6)将以下代码添加到您的表单中:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace SwfRes
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
LoadBinSwf();
}
private void LoadBinSwf()
{
//Assuming your swf is called "Main.swf"
byte[] swf = Properties.Resources.Main;
MemoryStream memStream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memStream);
writer.Write(8 + swf.Length);
writer.Write(0x55665566);
writer.Write(swf.Length);
writer.Write(swf);
memStream.Seek(0, SeekOrigin.Begin);
axShockwaveFlash1.OcxState = new AxHost.State(memStream, 1, false, null);
}
}
}