3

私はAS3にかなり慣れていないので、助けていただければ幸いです。

基本的に私はハザード認知テストに似たものを作ろうとしています。クリックすると、天候が適切なタイミングでクリックされたかどうかが記録されます。

私がこれまでに持っているのはこれです:

import flash.events.Event;

videoOverlay.addEventListener(MouseEvent.CLICK,doClick)
function doClick(e:Event):void
{
    trace(myVideo.playheadTime)
}

クリック可能な領域を作成し、クリック時間を表示することができました。次に行う必要があるのは、クリックが特定の時間枠内にあるかどうかを判断し、1 ポイントを追加して、ビデオ クリップの最後に追加することです。スコアを表示したい

私は単なるコードではありません。誰かがこれを行う方法を提案できれば、それは高く評価されます。

4

2 に答える 2

2

「適切な瞬間」を配列、xmlなどに保存できます。次のように言いましょう。

var moments:Array = [{start: "1:01", end: "1:16"}, {start: "1:25", end: "1:26"}, {start: "1:39", end: "1:51"}];
//time is in minutes, so you need to convert it to seconds
function doClick(e:Event):void
{
    for (var i:int = 0; i < moments.lenght; i++)
    {
        var moment:Object = moments[i];
        if (myVideo.playheadTime => toSeconds(moment.start) && myVideo.playheadTime <= toSeconds(moment.end))
        {
            trace("that's the right moment");
            break; //we do not need to check further
        }
    }
}
于 2013-03-12T13:07:57.613 に答える
0

これを行うために私が考えることができる最良の方法は、タイマーです。タイマー クラスをセットアップし、クリック イベント表示で、クリックが特定の時間範囲内にあるかどうかを示します。そうでない場合は成功し、そうでない場合は失敗します。

次のようなことを試してください:

counter:Number = 0;
videoOverlay.addEventListener(MouseEvent.CLICK,doClick)
public function doClick(e:Event):void
{
if (counter < 10)
trace("Success, your quick!");
else
  {
   trace("Failure!");
  }
}
addEventListener(Event.ENTER_FRAME, timed_event);

public function timed_event(event:Event) : void
{
counter++;
}

もちろん、時間レートはアプリケーションのフレームレートにも依存します。

于 2013-03-12T13:09:01.013 に答える