Q&A

  • flash play 하다가...
안녕하세요?

flash play 문제에 대해서 궁금한 점이 있어서요...

플래쉬 무비가 있습니다.
버튼을 누르면 이 플레쉬 무비(약 5초)가 모두 플레이 되고 (loop=false)
다음 프로그램 코드로 넘어가야 됩니다.

그런데!
결과는 다음과 같습니다.

버튼을 누르면 플레쉬 무비가 실행되지 않고 뒤에 있는 코드가 실행이 되고
그 코드가 끝나면 그제서야 플레쉬가 플레이 됩니다.

코드는 아래와 같습니다.


for i:=1 to 3 do
begin

   flash.loop := false;
   flash.play;

   label1.caption := abc = abc + b;

end;


코드 대로라면 플레쉬가 플레이 되고 무비가 끝나면 라벨에 출력하고
또 플레쉬가 플레이 되고... 해야 할텐데....
그게 안되네요.

그래서 flash.play; 다음에 sleep(5000); 으로 지연을 줘봤지만 마찬가지
플레쉬는 돌지 않고 위의 for 문으 끝난 이후에야 플레쉬 무비가 재생됩니다.

이유를 알 수 있을까요?
조언 부탁 드립니다 ^^;
1  COMMENTS
  • Profile
    하얀까마귀 2004.08.08 14:51
    안녕하세요 하얀까마귀 입니다.

    수년전에 플래쉬를 한번 해본것 같긴 하네요. ^^

    님의 코드에 약간 문제가 있어보이는건..

    flush.play 이부분에서 play라는 메소드가 님의 코드에서는
    한번 플래이 되고 루프가 끝날때 이 메소드를 빠져나오면 맞죠?
    하지만 만약 이 메소드가 메세지 같은거라면요?

    비디오의 play 버튼을 클릭해 주는 역활만 하는 거죠.. 따라서
    play를 해주면 비디오가 끝날때 까지 이 메소드를 빠져나오지 않는게 아니라 단지 시작만 해주고 해당 메소드가 끝나는거죠..
    오히려 비디오가 끝날때까지 메소드를 빠져나오지 않는게 더 큰문제죠. 정지를 할수 없으니까. ^^

    따라서 님의 코드는 조금 생각을 잘못하셧다고 보여지네요..

    3번 동작을 시킨다고 하더라도

    for i := 0 to 2 do
    begin
    flush.play

    while flush.played do
    begin
      sleep(...);
    end;
    end;

    메소드는 제가 다 까먹어서 ^^ 대충 이런식이 되어야 하지 않을까 하네요.
    그럼 즐델하세요..