青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

道。道。道

安全特性不等于安全的特性

   :: 首頁 :: 聯系 :: 聚合  :: 管理

常用鏈接

搜索

  •  

最新評論

  摘要: 本文通過在VC中將外部swf格式文件內嵌為VC的內部資源,使其在程序運行過程中從資源動態釋放到臨時文件,從而實現VC對Flash動畫的播放。


  引言

  Flash動畫由于可以很方便地把用戶的想象通過動畫顯現出來,使原本只屬于專業制作人員的動畫制作變的異乎尋常的快捷、方便。由于Flash制作的動畫在層次、內容、表現形式等諸多方面均比較出色,因此在網絡上得到迅猛的發展,更有不少廠商用Flash在互聯網上做起了廣告和產品演示,效果絲毫不比視頻的差,而體積則要小的多。Flash不僅在網絡上有廣泛的應用,在普通的應用程序中也可以借助Flash實現一些VC、Delphi等編程語言所難以實現的特效,比如在一些演示版的程序中完全可以將程序運行前的閃屏用Flash來制作。本文下面將通過對內嵌資源的動態釋放來實現VC對Flash動畫的播放,并給出了部分實現代碼。

  嵌資源的動態釋放

  Flash動畫在此是作為程序的一個模塊,雖然也可以以文件的形式作為一個外部資源來使用,但為了避免因外部模塊遺失而造成程序的非正常運行,可將由Flash 5.0預先制作好的swf格式的文件以資源的形式打包到應用程序中去,而在程序運行時再將其從資源恢復到文件,使用完畢再通過程序將其從磁盤刪除。

  在導入資源時由于swf格式文件并非VC的標準資源,所以在導入時需要在"Resource type"欄指定資源類型"SWF",特別需要注意的是在此必須要包含引號。加入到資源后可以通過資源視圖看到導入的SWF資源是以二進制形式保存的,一但加入就不能再通過資源視圖對其進行編輯了。

  在使用SWF資源前首先要將其動態從應用程序中釋放到文件中才可對資源做進一步的使用。可先通過宏MAKEINTRESOURCE()將資源標識號IDR_SWF轉換成字符串Name,再分別通過FindResource()、LoadResource()函數查找、裝載該資源到內存:

CString Type="swf";
HRSRC res=FindResource (NULL,Name,Type);
HGLOBAL gl=LoadResource (NULL,res);

  當資源加載到內存后,還要通過對資源內存的鎖定來返回指向資源內存的地址的指針,并籍此實現資源從內存到磁盤的保存,至于存盤的操作則由文件函數CreateFile()、和WriteFile()來完成:

LPVOID lp=LockResource(gl); //返回指向資源內存的地址的指針。
CString filename="Temp.swf"; //保存的臨時文件名
// CREATE_ALWAYS為不管文件存不存在都產生新文件。
fp= CreateFile(filename ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
DWORD a;
//sizeofResource 得到資源文件的大小
if (!WriteFile (fp,lp,SizeofResource (NULL,res),&a,NULL))
return false;
CloseHandle (fp); //關閉句柄
FreeResource (gl); //釋放內存

  通過上述代碼,可將SWF資源從應用程序中提取并釋放到臨時文件Temp.swf中,在此后只對此臨時文件操作,與程序內嵌資源無關。

  Flash動畫的播放

  swf格式的Flash動畫通常主要應用在網頁上,也就是說IE瀏覽器本身可以支持Flash動畫的播放。這樣就不必再單獨編寫用于播放swf文件的代碼,從而大大減少編程的工作量。在VC ++ 6.0中新增了一個從CView派生的、用于處理網頁的視類CHtmlView,由于該類是以Internet Explorer為后臺支持,因此在創建工程時只需在最后一步指定視類從CHtmlView派生就可以使程序不編一行代碼而具備IE瀏覽器的網頁顯示能力。

  程序剛生成的時候缺省的連接主頁是為微軟公司的主頁,需要對此修改,使程序在執行時立即顯示剛才提取出來的Flash臨時文件Temp.swf。顯示缺省主頁的代碼是在視類的初始化函數中進行的:

void CEmbedModuleView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
Navigate2(_T("http://www.microsoft.com"),NULL,NULL);
}

  顯然要將Navigate2()函數的第一個參數改成Temp.swf的存放路徑。剛才在釋放資源到文件時并沒有指定絕對路徑,因此釋放出來的資源文件應當和應用程序處于同一目錄。但是在此處如果不寫明絕對路徑是無法顯示該臨時文件的。獲取該臨時文件的絕對路徑可用如下方法實現:先獲取應用程序本身的絕對路徑,然后去處應用程序全名(程序名和擴展名)此時得到的是應用程序和臨時文件所處文件夾的路徑,最后只需在此基礎上加上臨時文件的文件名Temp.swf即可得到臨時文件的全路徑。下面是實現的主要代碼:


//獲取應用程序的全路徑
char exeFullPath[MAX_PATH];
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
//將其格式化為字符串
m_TempFile.Format("%s",exeFullPath);
//去掉應用程序的全名(15為應用程序文件全名的長度)
exeFullPath[m_TempFile.GetLength()-15]='\0';
//得到應用程序所在路徑
m_TempFile.Format("%s",exeFullPath);
//得到臨時文件的全路徑
m_TempFile+="Temp.swf";

  最后將得到的臨時文件的全路徑m_TempFile作為參數傳遞給Navigate2()即可在程序運行時把Flash動畫作為主頁而顯示
  由于臨時文件Temp.swf是在程序運行過程中從應用程序的資源中提取出來的,因此在程序退出之前需要將其刪除。一般是在消息WM_DESTORY的響應函數里通過DeleteFile()函數來加以實現的。

  小結

  本文通過對CHtmlView和內嵌資源的動態釋放實現了Flash動畫在VC程序中的播放,并對資源的動態釋放作了較為清晰的描述。通過類似的方法,可以將動態鏈接庫、HTML文件等程序模塊作為資源嵌入其中,在使用時再動態釋放到臨時文件,這樣可有效避免文件模塊過多時的雜亂以及程序模塊丟失導致程序非正常運行等情況的發生。本文所述程序在Windows 98下,由Microsoft Visual C++ 6.0編譯通過。Flash動畫由 Macromedia Flash 5.0制作,所需瀏覽器支持為Internet Explorer 6.0。
posted on 2006-12-02 21:36 獨孤九劍 閱讀(362) 評論(0)  編輯 收藏 引用 所屬分類: Win32Visual C++ 8.0
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品热6080yy久久| 99这里只有久久精品视频| 欧美一区二区免费观在线| 国产精品高潮视频| 亚洲在线免费| 欧美一区二区成人6969| 黑丝一区二区三区| 欧美肥婆bbw| 亚洲欧美日韩在线观看a三区| 在线亚洲观看| 国产精品视频免费观看| 久久精品国产69国产精品亚洲| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品久久7| 国内精品久久久久影院 日本资源| 久久国产精彩视频| 久久久久天天天天| 日韩一区二区高清| 亚洲一区二区三区在线| 激情欧美一区二区三区在线观看 | 91久久精品一区二区别| 亚洲精品视频在线看| 日韩写真视频在线观看| 国产精品嫩草影院av蜜臀| 久久久亚洲国产天美传媒修理工| 久久亚洲综合| 亚洲欧美精品中文字幕在线| 久久免费视频网| 亚洲视频在线观看视频| 欧美一区二区三区在线视频| 亚洲精品欧美一区二区三区| 99这里只有精品| 亚洲黄色大片| 亚洲免费视频一区二区| 亚洲精品美女在线观看| 亚洲欧美视频| 亚洲色无码播放| 老鸭窝毛片一区二区三区| 美女国内精品自产拍在线播放| 日韩亚洲欧美中文三级| 亚洲伦伦在线| 亚洲高清视频在线观看| 亚洲欧美在线播放| 日韩视频一区二区三区在线播放| 欧美亚洲免费在线| 免费一级欧美片在线观看| 国产欧美亚洲一区| 亚洲精品国产精品国产自| 国产乱码精品一区二区三区五月婷| 欧美国产视频在线| 伊人久久av导航| 中文精品视频| 99re6热只有精品免费观看| 久久久久久亚洲综合影院红桃 | 国产欧美一区二区色老头| 91久久精品日日躁夜夜躁欧美| 激情成人综合| 欧美一区二区日韩| 亚洲午夜精品网| 欧美日韩一区二区三区| 亚洲国产黄色| 亚洲免费观看视频| 欧美成人第一页| 欧美黑人一区二区三区| 在线成人www免费观看视频| 久久成人资源| 久久在线播放| 亚洲国产精品欧美一二99| 久久在精品线影院精品国产| 久久综合国产精品台湾中文娱乐网| 国产日韩欧美一区二区三区在线观看| 99精品视频一区| 亚洲午夜极品| 国产精品美女久久福利网站| 亚洲一区精品视频| 欧美在线综合视频| 欧美日韩在线播放三区四区| 久久久精品999| 国产真实乱偷精品视频免| 午夜天堂精品久久久久| 久久国产精品色婷婷| 国产乱码精品一区二区三区av| 亚洲欧美精品伊人久久| 欧美主播一区二区三区美女 久久精品人| 国产精品久久91| 午夜精彩视频在线观看不卡| 久久久av水蜜桃| 亚洲国产精品久久精品怡红院| 欧美大片在线观看| aa级大片欧美三级| 欧美在线观看你懂的| 狠狠综合久久av一区二区老牛| 久久xxxx精品视频| 亚洲高清二区| 欧美亚洲视频| 亚洲高清久久网| 欧美视频第二页| 一本大道久久a久久精品综合| 久久国产高清| 亚洲第一色中文字幕| 一区电影在线观看| 国产日韩一区二区三区在线| 老**午夜毛片一区二区三区| 亚洲精品国产精品国自产观看| 亚洲欧美日产图| 尤物视频一区二区| 国产精品theporn| 久久精品91久久久久久再现| 亚洲精品麻豆| 久久最新视频| 亚洲欧美日韩成人| 亚洲人成啪啪网站| 国产日韩精品一区二区| 欧美精品色网| 欧美中文字幕第一页| 亚洲卡通欧美制服中文| 久久视频一区二区| 亚洲综合好骚| 日韩一级黄色av| 1024国产精品| 国产日韩欧美成人| 日韩亚洲在线观看| 亚洲在线观看视频| 久热精品视频在线观看| 一区二区三区精品视频| 一区二区自拍| 国产三级欧美三级日产三级99| 欧美肥婆在线| 蜜乳av另类精品一区二区| 亚洲一区二区三区在线播放| 亚洲国产黄色| 欧美高清视频一区二区三区在线观看| 欧美一区免费| 午夜视黄欧洲亚洲| 一二三四社区欧美黄| 亚洲欧洲综合另类| 在线观看精品视频| 影音国产精品| 极品少妇一区二区| 国产午夜亚洲精品理论片色戒| 欧美日韩免费观看一区=区三区 | 久久久精品国产99久久精品芒果| 亚洲网站啪啪| 亚洲视频免费| 亚洲欧美视频在线观看视频| 国产精品99久久久久久久久| 日韩一级精品视频在线观看| 99热精品在线| 亚洲午夜日本在线观看| 亚洲图片你懂的| 亚洲一区日韩在线| 亚洲欧美自拍偷拍| 校园春色综合网| 久久国产精品久久久久久久久久| 性欧美video另类hd性玩具| 午夜亚洲一区| 久久久久一本一区二区青青蜜月| 久久精品网址| 老司机一区二区| 亚洲黑丝一区二区| 亚洲靠逼com| 亚洲一区二区三区免费观看| 亚洲欧美bt| 久久精视频免费在线久久完整在线看| 久久精品综合| 欧美成人国产| 国产精品久久久久久av福利软件| 国产精品看片资源| 国模套图日韩精品一区二区| 在线日韩中文| 亚洲天堂网站在线观看视频| 性久久久久久久久| 久久阴道视频| 亚洲激情视频| 午夜久久tv| 欧美成黄导航| 国产日韩欧美另类| 91久久久久久久久| 亚洲永久免费av| 久久婷婷国产综合尤物精品 | 一本色道久久综合狠狠躁的推荐| 亚洲无亚洲人成网站77777| 久久久久久久久久久成人| 欧美激情1区2区| 亚洲宅男天堂在线观看无病毒| 久久久久久久综合| 国产精品裸体一区二区三区| 在线观看国产精品网站| 亚洲一区亚洲| 欧美激情aⅴ一区二区三区| 亚洲丝袜av一区| 免费欧美日韩| 亚洲国产欧美在线| 一区二区三区欧美| 久久久久久久久久码影片| 欧美日韩精品一区二区天天拍小说 | 香蕉免费一区二区三区在线观看 | 99av国产精品欲麻豆| 久久av一区二区三区漫画| 国产精品成人aaaaa网站|