gpt4 book ai didi

c# - 从内存流或字节数组加载 Flash 影片

转载 作者:行者123 更新时间:2023-11-30 13:34:49 25 4
gpt4 key购买 nike

我想从内存流或字节数组而不是磁盘上的文件加载 SWF 对象。

AxShockwaveFlash 类提供了加载 SWF 的方法和属性,以字符串形式提供其磁盘路径,但我还没有看到另一种方法。有一个 InlineData 属性,但通常该类没有记录,我不知道该属性的作用。完全可以做到吗?

谢谢F

最佳答案

我假设您想要做的是在 C# 中而不是在 Flash 中对其进行初始化。可以做到,但这样做有局限性(例如,您可能会遇到奇怪的安全问题)。另一个警告是这只在 VS 2010/Flash 10 上测试过,但理论上它应该适用于任何版本。

好的,让我们假设您已经使用标准机制将 flash 控件放在窗体上。还将您想要的闪存文件添加到资源(或内联字节数组,由您决定)。

然后使用下面的代码加载flash文件。

private void InitFlashMovie(AxShockwaveFlash flashObj, byte[] swfFile)
{
using (MemoryStream stm = new MemoryStream())
{
using (BinaryWriter writer = new BinaryWriter(stm))
{
/* Write length of stream for AxHost.State */
writer.Write(8 + swfFile.Length);
/* Write Flash magic 'fUfU' */
writer.Write(0x55665566);
/* Length of swf file */
writer.Write(swfFile.Length);
writer.Write(swfFile);
stm.Seek(0, SeekOrigin.Begin);
/* 1 == IPeristStreamInit */
flashObj.OcxState = new AxHost.State(stm, 1, false, null);
}
}
}

传递表单的 flash 对象和包含要加载的 flash 文件的字节数组,它应该工作。

关于c# - 从内存流或字节数组加载 Flash 影片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1874077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com