私は14:30
に毎日eventX
を呼びたいと思っています。actionscript 3
でこのような仕事をしていますか?actionscript 3で一定の時間に何らかのイベントを呼び出す方法は?
答えて
アドビAS3 Alarm Clock exampleは、知っておくべきことをすべて教えてください。特に、setAlarm
方法が重要である。あなたは EDIT 日付オブジェクトを使用することができます
それは、フラッシュが発光しないイベントを発生させる秒間フリーズ可能性が示唆されました。これは有効です - これは更新されましたので、これはもはや問題ではありません。 Dateクラスは、ユーザーが変更することができ、ローカルマシンの時間を、結ばれているので、繰り返しイベントのトリガポイントとして日付()を使用
var currDate:Date = new Date();
var targetHour:int = 14;
var targetMinute:int = 30;
var startHour:int = currDate.getHours();
var startMinute:int = currDate.getMinutes();
var eventTriggered:Boolean = false;
// you can use an enterframe or a timer event here, doesn't matter which
addEventListener(Event.ENTER_FRAME, onCheckTime);
function onCheckTime(evt:Event):void{
currDate = new Date();
var hours:int = currDate.getHours();
var minutes:int = currDate.getMinutes();
// in order for this not to work flash would need to freeze for an entire minute
// not likely
if (hours == 14 && minutes == 30){
trigger();
}
// if flash froze for a whole minute
if (!eventTriggered){
if (startHour <= targetHour && startMinute < targetMinute){
if (hours > targetHour && minutes > targetMinute){
trigger();
}
}
}
}
function trigger():void{
// do anything you want here
eventTriggered = true;
dispatchEvent(new Event("eventX"));
removeEventListener(Event.ENTER_FRAME, onCheckTime);
}
何らかの理由でフラッシュプレーヤーが時刻チェックの直前に応答しなくなった場合、そのプレーヤーはスキップする可能性があります。そこにいくつかのロジックを入れたいと思うかもしれないので、それをスキップしてもまだ動作することができます。 – AttackingHobo
特にdispatchEvent()を使用する場合はそうではありません。フラッシュプレーヤーが応答しなくなった場合、応答がないとdispatchEvent()が実行されます。つまり、単にロジックを追加するのは簡単です。私は今すぐ追加する時間がありませんが、私は後で戻って私の答えを更新します。 – Zevan
AHoboによれば、時間== 14、分== 30、秒== 0のときにタイミングイベントが発生するという保証はないので、メソッドは信頼できません。タイミングイベント(タイマーかEnterframeか)は、14:29.59で起動し、14:30.01でロジックを完全にスキップする可能性があります。この仕様は、正確な時刻にイベントを保証するものではなく(また、保証することもできません)、まれにありませんが、AHoboのシナリオはこれを悪いソリューションにしています。 -1 – spender
も言及したとの理由で信頼できないです。ほとんどの場合、ユーザーはローカルマシン上の日付を変更し、それが目標の日付に達することを許可しません。
あなたは日()を使用した場合しかし、私はトリガーを持っている、あなたの完全な分(またはものは何でもtimeOutLength変数に設定)を与えることになる、次のようにそれに近づく可能性があります( )が呼び出されます。 elseブロックは、trigger()が呼び出されずに何らかの方法でトリガーウィンドウが渡された場合、trigger()を呼び出します。残りの関数は、トリガーウィンドウが期限切れになるまで待機期間を作成し、その後、日付を1日前にロールバックしてプロセスを再開します。
var timeOutLength:Number = 1;
var minutesToWaitUntilReset:Number = timeOutLength + 1;
var hasBeenTriggered:Boolean = false;
var targetHour:Number = 2;
var targetMinute:Number = 38;
var currentYear:Number = new Date().getFullYear()
var currentMonth:Number = new Date().getMonth();
var currentDay:Number = new Date().getDate();
addEventListener(Event.ENTER_FRAME, onCheckTime);
function onCheckTime(evt:Event):void
{
var currentDate = new Date().getTime();
var targetDate = new Date(currentYear, currentMonth, currentDay, targetHour, targetMinute).getTime();
var timeOutDate = new Date(currentYear, currentMonth, currentDay, targetHour, (targetMinute + timeOutLength)).getTime();
if (currentDate >= targetDate && currentDate < timeOutDate && hasBeenTriggered == false)
{
tiggerDailyEvent();
}
else if(currentDate >= timeOutDate && hasBeenTriggered == false)
{
tiggerDailyEvent();
}
}
function tiggerDailyEvent():void
{
hasBeenTriggered = true;
removeEventListener(Event.ENTER_FRAME, onCheckTime);
addEventListener(Event.ENTER_FRAME, waitForReset);
// this is where you call your daily event
}
function waitForReset(evt:Event):void
{
var currentYear = new Date().getFullYear();
var currentMonth = new Date().getMonth();
var currentDay = new Date().getDate();
var currentDate = new Date().getTime();
var resetDate = new Date(currentYear, currentMonth, currentDay, targetHour, (targetMinute + timeOutLength + minutesToWaitUntilReset)).getTime();
if(currentDate >= resetDate)
{
removeEventListener(Event.ENTER_FRAME, waitForReset);
reset();
}
}
function reset():void
{
hasBeenTriggered = false;
currentYear = new Date().getFullYear();
currentMonth = new Date().getMonth();
currentDay = new Date().getDate() + 1;
addEventListener(Event.ENTER_FRAME, onCheckTime);
}
- 1. 一定時間後にコールバック関数を呼び出す方法
- 2. Webサービスからactionscript 3の関数を呼び出す方法は?
- 3. 特定の時間にコントローラでアクションメソッドを呼び出す方法
- 4. Actionscript 3で関数を呼び出す
- 5. actionscript 3でjavaメソッドを呼び出す方法はありますか?
- 6. Actionscript 3 javascript関数を呼び出す
- 7. 通話の間に一定の時間をかけて毎回sidekiqワーカーを呼び出す方法は?
- 8. actionscript 3、ウェブサイトからデータを呼び出す
- 9. 一定時間X分ごとにメソッドを呼び出す方法
- 10. AndroidでActionScriptを呼び出す方法はありますか?
- 11. 特定の時間にObservableメソッドを呼び出す最も良い方法は何ですか?
- 12. javascriptからactionscriptメソッドを呼び出す
- 13. ActionScriptからC++コードを呼び出す
- 14. iPhoneアプリケーションで特定の時間に毎日メソッドを呼び出す方法は?
- 15. 他のページWindows Phoneからイベントを呼び出す方法は?
- 16. フォームでform1からイベントを呼び出す方法は?
- 17. サーバーサイドからPowerShellスクリプトを呼び出すActionscriptまたはその他の何か
- 18. actionscript 3でxml解析時間を計算する方法は?
- 19. ActionScript 3動的呼び出しボタン
- 20. ExternalInterfaceの呼び出しは、ActionScript 3では、ブラウザ
- 21. Actionscript 3別のMoviClipの中でムービークリップを呼び出す
- 22. 別の定義から以前の定義を呼び出す方法Python 3
- 23. 与えられた時間間隔で.post()を呼び出す方法は?
- 24. tkinterの別のモジュールからイベントを呼び出す方法
- 25. 所定の時間にクラウド機能を呼び出す方法は?
- 26. ActionScript 3では、xmlからActionScriptクラスへのデコード方法は?
- 27. Swift 3のメインスレッドで時間遅延の後に関数を呼び出す方法はありますか?
- 28. 特定のイベントで$ customer-> save()を呼び出す方法
- 29. InstallShield DoActionイベントからマージモジュールカスタムアクションを呼び出す方法は?
- 30. hibernateからmysqlイベントを作成/呼び出す方法は?
私のflexプロジェクトで直接使用できるように、swcファイルにコンパイルするにはどうすればいいですか? – fms
フレックスプロジェクトでコードを使用するだけです。なぜこれをswcとしてパッケージ化したいのですか? – spender