我想知道是否有任何方法可以讀寫(或保存/加載)AxShockwaveFlash Flash對象到(二進制/文本)文件?將AxShockwaveFlash Flash對象寫入文件C#
我有AxShockwaveFlash Flash對象上一個WinForm,並希望它是保存到
文件,但系列化犯規不是類型AxShockwaveFlash沒有標記爲序列化工作?
(基本上試圖動態地寫入.swf文件。)
任何想法??
感謝和問候
阿米特
我想知道是否有任何方法可以讀寫(或保存/加載)AxShockwaveFlash Flash對象到(二進制/文本)文件?將AxShockwaveFlash Flash對象寫入文件C#
我有AxShockwaveFlash Flash對象上一個WinForm,並希望它是保存到
文件,但系列化犯規不是類型AxShockwaveFlash沒有標記爲序列化工作?
(基本上試圖動態地寫入.swf文件。)
任何想法??
感謝和問候
阿米特
我試過這個,它爲我工作。
我從AxShockwaveFlashObjects.AxShockwaveFlash調出了一個類並實現了ISerializable接口。
實現GetObjectData和序列化構造函數。沒有太多的編碼。
[Serializable()]
class MyCustomFlash : AxShockwaveFlashObjects.AxShockwaveFlash, ISerializable
{
public MyCustomFlash()
{
}
public MyCustomFlash(SerializationInfo info, StreamingContext ctxt)
{
//dont think this is required.
this.OcxState = (State)info.GetValue("ocxstate", typeof(State));
}
#region ISerializable Members
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
//dont think this is required.
// info.AddValue("movie", this.Movie);
info.AddValue("ocxstate", this.OcxState);
}
#endregion
}
我正在使用winform。因此請確保您使用嵌入
axShockwaveFlash1.EmbedMovie = true;
//loadMovie follows
然後嘗試Normal binary serialization/deserilzation電影。
在反序列化期間,我試圖將序列化的閃存添加到另一個表單。
但不斷收到AxHost + InvalidActiveXStateException,並且控件沒有出現在窗體上。我認爲這個控件並沒有在表單中被引用。
只需將設計器初始化代碼複製到它,然後它就可以工作。
string serialFilePath = @"E:\test\serialFiles\DataFile.dat";
FileStream myFS = new FileStream(serialFilePath, FileMode.Open);
// Create a binary formatter object to deserialize the data
BinaryFormatter myBF = new BinaryFormatter();
MyCustomFlash flashObj;
//where class MyCustomFlash : AxShockwaveFlashObjects.AxShockwaveFlash, ISerializable
flashObj = (MyCustomFlash)myBF.Deserialize(myFS);
//this is code from VS designer..need to initialise flash control
((System.ComponentModel.ISupportInitialize)(flashObj)).BeginInit();
myFS.Close();
flashObj.Enabled = true;
this.Controls.Add(flashObj);
((System.ComponentModel.ISupportInitialize)(flashObj)).EndInit();
flashObj.Name = "Axflash";
flashObj.Visible = true;
flashObj.Location = new System.Drawing.Point(12, 12);
flashObj.Size = new System.Drawing.Size(309, 207);
希望這有助於:)
THX
amitd
我覺得這個環節對您有用;
Serialize Flash object
嘗試此鏈接提供的示例。