兩大步驟
- 嵌入:使用 Shockwave Flash Object ActiveX 控制項(
flash.ocx/swflash.ocx)
- 互動:Flash 側用
FSCommand(cmd, args) 送出訊息;VC++ 側透過類別精靈映射 FSCommand 事件接收

嵌入流程
- 確認系統已安裝 Flash Player(含 ActiveX 控制項)
- MFC 對話框專案 → 專案 → 加入元件 → Registered ActiveX Controls → Shockwave Flash Object → 插入 → 產生包裝類別
- 對話框編輯器工具箱出現圖示 → 拉入對話框 → 關聯變數
m_FlashPlayer
- 初始化播放:
m_FlashPlayer.LoadMovie(0, _T("C:\\demo.swf")); m_FlashPlayer.Play();
Flash → VC++ 訊息傳遞
Flash ActionScript
// 按鈕按下
fscommand("btn", "enter");
// 退出按鈕
fscommand("quit", "");
VC++ 事件處理
void CMyDlg::OnFSCommandShockwaveflash1(LPCTSTR cmd, LPCTSTR args) {
if (strcmp(cmd, "btn") == 0 && strcmp(args, "enter") == 0)
MessageBox("歡迎進入系統!");
else if (strcmp(cmd, "quit") == 0)
{ MessageBox("您選擇了退出!"); OnCancel(); }
}
VC++ ↔ Flash 變數存取
CString val = m_FlashPlayer.GetVariable("varName"); 讀取 Flash 變數
m_FlashPlayer.SetVariable("varName", "newValue"); 設定 Flash 變數
常用播放控制函式
GotoFrame(long frameNum) 跳至指定幀
StopPlay() / Play() 暫停/播放
SetZoom(zoom) 縮放
Pan(x, y, mode) 平移
開發提示
- Flash 5 以下用
swflash.ocx,5 以上用 flash.ocx
LoadMovie 路徑必須為絕對路徑
- 複雜互動建議定義 JSON 格式字串在
FSCommand 中傳遞