/// <summary> /// フレームごとに呼ばれます。 /// </summary> protected override void OnEnterFrame(EnterFrameEventArgs e) { base.OnEnterFrame(e); this.count += 1; var now = DateTime.Now; var diff = now - this.prevTime; if (diff >= TimeSpan.FromSeconds(1.0)) { Fps = this.count / diff.TotalSeconds; FpsChanged.SafeRaiseEvent(this, EventArgs.Empty); this.prevTime = now; this.count = 0; } }
/// <summary> /// フレーム毎に呼ばれます。 /// </summary> public void DoEnterFrame(TimeSpan elapsedTime) { if (RemoveMe) { return; } // 初期化はフレームを分けます。 if (!this.initialized) { Initialize(); // 初期化フレームと開始フレームを分ける場合のみ // ここで処理を終了します。 if (!IsFastInitialize) { return; } } if (!this.started) { if (!Start()) { return; } } // もし時間制限があればその時間経過後はオブジェクトを削除します。 this.progressSpan += elapsedTime; if (this.progressSpan >= Duration && (AutoRemove || !HasChildren())) { Kill(); return; } var e = new EnterFrameEventArgs(elapsedTime, progressSpan, Duration); OnEnterFrame(e); // 表示行列を更新します。 ModelGroup.Transform = CreateMatrix(); UpdateChildren(elapsedTime); }
/// <summary> /// フレーム枚の更新処理を行います。 /// </summary> protected virtual void OnEnterFrame(EnterFrameEventArgs e) { EnterFrame.SafeRaiseEvent(this, e); }
/// <summary> /// フレーム毎に呼ばれます。 /// </summary> public void DoEnterFrame(TimeSpan elapsedTime) { if (RemoveMe) { return; } // 初期化はフレームを分けます。 if (!this.initialized) { Initialize(); // 初期化フレームと開始フレームを分ける場合のみ // ここで処理を終了します。 if (!IsFastInitialize) { return; } } if (!this.started) { if (!Start()) return; } // もし時間制限があればその時間経過後はオブジェクトを削除します。 this.progressSpan += elapsedTime; if (this.progressSpan >= Duration && (AutoRemove || !HasChildren())) { Kill(); return; } var e = new EnterFrameEventArgs(elapsedTime, progressSpan, Duration); OnEnterFrame(e); // 表示行列を更新します。 ModelGroup.Transform = CreateMatrix(); UpdateChildren(elapsedTime); }