日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC使用flash简易教程

發(fā)布時(shí)間:2024/4/11 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC使用flash简易教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.基本概念:

VC為Flash實(shí)現(xiàn)了一個(gè)CWnd的包裝:CShockwaveFlash,該類實(shí)現(xiàn)了FlashActiveX控件的所有功能。

shockwave flash object控件有四個(gè)事件句柄(eventhandler)。分別是:FSCommand, OnProgress, FlashCall, OnReadyState。

?

FSCommand:flash就是給支持它的應(yīng)用程序發(fā)送消息的手段。除了利用FSCommand外,shockwave flash object還提供了兩個(gè)進(jìn)行交互的函數(shù),一個(gè)是CString GetVariable(LPCTSTR name),用來獲得flash動(dòng)畫中變量name的值,該值以CString的形式返回給調(diào)用者;一個(gè)是void SetVariable(LPCTSTR name, LPCTSTR value),可以用來將flash動(dòng)畫中的name變量設(shè)置一個(gè)值value。但這種交互方式有比較高的耦合性,需要flash開發(fā)者及應(yīng)用程序的開發(fā) 者有比較緊密的配合。但這種方式也可以一些交互性很強(qiáng)的flash。當(dāng)然更多的是兩種方式同時(shí)采用。因?yàn)檫@兩種方法各有不同的使用背景。一般來說如果需要對(duì)整個(gè)flash和應(yīng)用程序的外部行為進(jìn)行控制則采用FSCommand,而如果只是需要對(duì)flash的內(nèi)部動(dòng)作進(jìn)行響應(yīng)則使用GetVariable和SetVariable。

FSCommand事件說明
??? FSCommand(command,args)命令有兩個(gè)參數(shù),都是字符串,你可以在flash腳本中指定任意的字符串。比如用戶按下flash動(dòng)畫的一個(gè)按鈕就發(fā)送FSCommand("bt","bt1")這樣一個(gè)消息,按下另一個(gè)按鈕發(fā)送FSCommand("bt","bt2"),而我們的程序 收到FSCommand消息后就對(duì)通過兩個(gè)參數(shù)的不同字符串來判斷用戶按下的是哪個(gè)按鈕。簡(jiǎn)單的說,就是在flash動(dòng)畫中使用FSCommand發(fā)送消息,在我們的程序接收和處理FSCommand消息。

?

2.VC使用flash簡(jiǎn)易教程

1.??????插入Shockwave Flash Object空間(Active)

2.??????給新控件添加一個(gè)ctrl變量flashUI

3.??????初始化添加代碼:

flashUI.LoadMovie(0, L"C:\\Users\\Administrator\\Desktop\\touqiu.swf");

3.Flash與后臺(tái)數(shù)據(jù)交互方法

  • LoadVars(XML)
  • Flash Remoting
  • Webservice
  • XMLSocket
  • FlashCom(FMS)
  • 4.VC中CShockwaveFlash的常用函數(shù)

    Play()??????????????????????????????????????????????????播放動(dòng)畫?
    StopPlay()??????????????????????????????????????????????
    停止動(dòng)畫?
    IsPlaying()????????????????????????????????????????????? 動(dòng)畫是否正在播放(true,false)?
    GotoFrame(frame_number)????????????????????????????????? 跳轉(zhuǎn)到某幀(frame_number+1)?
    TotalFrames()???????????????????????????????????????????
    獲取動(dòng)畫總幀數(shù)?
    CurrentFrame() ??????????????????????????????????????????回傳當(dāng)前動(dòng)畫所在幀數(shù)-1?
    Rewind()????????????????????????????????????????????????使動(dòng)畫返回第一幀?
    SetZoomRect(left,top,right,buttom)?????????????????????? 放大指定區(qū)域?
    Zoom(percent) ???????????????????????????????????????????
    改變動(dòng)畫大小?
    Pan(x_position,y_position,unit)???????????????????????? 使動(dòng)畫在x,y方向上平移?
    PercentLoaded()??? ??????????????????????????????????返回動(dòng)畫被載入的百分比(0-100)?
    LoadMovie(level_number,path)??????????????????? ???? 加載動(dòng)畫?(絕對(duì)路徑)
    TGotoFrame(movie_clip,frame_number)??? ??????????????movie_clip跳轉(zhuǎn)到指定幀數(shù)?
    TGotoLabel(muvie_clip,label_name)??? ????????????????
    movie_clip跳轉(zhuǎn)到指定標(biāo)簽?
    TCurrentFrame(movie_clip)??? ????????????????????????回傳movie_clip當(dāng)前幀-1?
    TCurrentLabel(movie_clip)?????????????????????????? ?回傳movie_clip當(dāng)前標(biāo)簽?
    TPlay(movie_clip)??? ????????????????????????????????播放movie_clip?
    TStopPlay(movie_clip)?????????????????????????????? ?停止movie_clip的播放?
    GetVariable(variable_name)???????????????????????? ? 獲取變量?
    SetVariable(variable_name,value)??? ?????????????????
    變量賦值?
    TCallFrame(movie_clip,frame_number)???????????????? ?call指定幀上的action?
    TCallLabel(movie_clip,label)??? ?????????????????????
    call指定標(biāo)簽上的action?
    TGetProperty(movie_clip,property)?????????????????? ?獲取movie_clip的指定屬性?
    TSetProperty(movie_clip,property,number)??? ?????????設(shè)置movie_clip的指定屬性
    CallFunction(CString)??????????????????????????????? MFC向Flash發(fā)送信息

    6.?????? 實(shí)現(xiàn)MFCFlash的通信

    首先做好用來測(cè)試用的flash

    在flash上面點(diǎn)擊兩個(gè)紅色按鈕,向MFC發(fā)送兩個(gè)不同的消息:
    fscommand("fs1");
    fscommand("fs2");
    MFC向flash發(fā)送消息:
    在FLASH中,要用ExternalInterface.addCallback把能被外部調(diào)用的函數(shù)注冊(cè)一下,例如:ExternalInterface.addCallback("strShow1",strShow1);
    ExternalInterface.addCallback("strShow2",strShow2);

    1,Flash通過FSCommand消息調(diào)用MFC
    第一步:添加消息處理函數(shù)。在Flash控件上點(diǎn)右鍵,然后選擇“添加事件處理程序”void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTRcommand, LPCTSTR args)
    第二步:編寫消息處理代碼。
    void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTR command,LPCTSTR args)

    {??? // TODO: 本次只是測(cè)試,正規(guī)項(xiàng)目一般都是switch語句
    ???? CString toShow;
    ???? toShow.Format("Flash向MFC發(fā)送的參數(shù)列表command:%s---args:%s",command,args);
    ???? AfxMessageBox(_T(toShow));
    }
    2、MFC通過CallFunction函數(shù)調(diào)用Flash
    ???? CString temp = "<invokename=\"strShow1\"><arguments><string>這是C++調(diào)用flash的響應(yīng)</string></arguments></invoke>";
    flashUI.CallFunction(temp);
    上面這個(gè)函數(shù)會(huì)調(diào)用flash文件里的strShow1函數(shù)。

    總結(jié)

    以上是生活随笔為你收集整理的VC使用flash简易教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。