全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2770
推到 Plurk!
推到 Facebook!

BCB寫連續播放flash動畫

尚未結案
longlong0525
一般會員


發表:1
回覆:2
積分:0
註冊:2003-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-19 05:57:28 IP:218.167.xxx.xxx 未訂閱
各位大大^^,我目前在寫一個兒童啟蒙遊戲,要先連續播放資料夾內的五則教學動畫, 再來做問答遊戲,(其中牽涉影像比對方面),影像比對完後再來判斷是否答對, 以顯示"答對"或"答錯"的動畫,參考過本站文章    http://delphi.ktop.com.tw/topic.php?topic_id=36394    http://delphi.ktop.com.tw/topic.php?topic_id=19106    現在我只知道ShockwaveFlash的用法,卻不知道如何讓它連續播放, 一定要用文章中XmlDocument的方法嗎??有更簡單的寫法嗎??    Src:='D:\4090資料夾\7_程式軟體\flash\radio\'+Src; ShockwaveFlash1.Movie:= Src; <=== 如何讓程式能播完test1後能繼續播test2...然後一直循環..    另外問題,以上這段程式我用bcb寫時 String Src; Src = "D:\text\01.swf"; //動畫路徑 ShockwaveFlash1->Movie = Src; 為什麼執行程式後卻沒有播放動畫捏??    感謝各位高手,為小女子解惑
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-19 09:09:50 IP:61.224.xxx.xxx 未訂閱
試試看路徑的寫法再多一個斜線 < class="code">Src = "D:\\text\\01.swf"; 國泰平安
longlong0525
一般會員


發表:1
回覆:2
積分:0
註冊:2003-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-20 02:21:50 IP:218.167.xxx.xxx 未訂閱
謝謝 gemi0305 大大嚕!! 如果我想用 sPath = "d:\\text\\">Movie = sPath; } 為什麼執行時只播放最後一則5.swf,可以讓它一則一則播放嗎?? 還要加上什麼嗎?? < > 再次麻煩各位高手,不好意思 < >
a8960905
一般會員


發表:30
回覆:47
積分:20
註冊:2003-09-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-20 04:55:40 IP:61.219.xxx.xxx 未訂閱
說個笑話: 你家電腦跑太快嚕!~^^ 呵呵 如果小弟判斷沒錯的話.. for迴圈是不會等人的唷~呵呵 他不會等你撥完第一個動畫再去把i 喔.. 所以以人緩慢的知覺當然只看到播放第5段影片嚕~ 小弟其實對ShockwaveFlash元件不了解.. 你看看他有沒有OnEnd之類的在那個地方再去做i 我想就不會有問題囉~ 有問題可以E-mail我: a8960905@yahoo.com.tw (小弟也是新手啦~) http://cft.ns.tc/
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-21 00:41:27 IP:61.224.xxx.xxx 未訂閱
試試看以下的範例, 連繼播放多個flash~ 請在Form上放一個Timer、一個Buttin和一個ShockwaveFlash,  Flash檔名請從0開始,如0.swf,1.swf...以此類推, 用timer去檢查是否要換下一個flash:  
    #include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
int PlayingNum=0;
int FlashTotal=5; //要play的flash數目,可自行更改
String sPath;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
     Timer1->Interval=100;
     Timer1->Enabled=false;
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
     sPath = "F:\\"   IntToStr(PlayingNum)  ".swf";
     ShockwaveFlash1->Movie = sPath;
     ShockwaveFlash1->Loop=false;
     Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
     if (ShockwaveFlash1->ReadyState==4)
        if (ShockwaveFlash1->IsPlaying())
            {}
        else
            if (PlayingNumMovie = sPath;
                ShockwaveFlash1->Loop=false;
                PlayingNum  ;
            }
            else
            {
                Timer1->Enabled=false;
                ShowMessage("The End");
            }
} 
有修改過,這樣比較精簡~ 試試看吧~ 國泰平安 發表人 -
longlong0525
一般會員


發表:1
回覆:2
積分:0
註冊:2003-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-21 23:34:50 IP:218.167.xxx.xxx 未訂閱
謝謝a8960905 及 gemi0305 唷!! gemi0305 大大,測試過已ok~~~ 十分感謝您唷~~~~~
系統時間:2024-05-01 4:24:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!