動畫控制元件
# PinToo 控制元件使用(動畫元件)
此組中包含了用於顯示控制元件動態效果的特效控制元件。
# 1. TfxColorAnimation
附加到對象的TColor型別屬性以隨時間改變其值。
# 1.1. 屬性(Properties)
- TfxColorAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
StartValue | 從此值開始此屬性的動畫 |
StopValue | 達到該值時,終止此屬性的動畫 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 1.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 1.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 1.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 1.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 1.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 1.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 1.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 1.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 1.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 1.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 1.1.11. StartValue屬性
從此值開始此屬性的動畫。
對於TFloatAnimation,StartValue是一個實數,包含用於開始對受控屬性進行動畫處理的值。如果StartFromCurrent為True,則在動畫開始時將StartValue重新分配給屬性的當前值。
# 1.1.12. StopValue屬性
達到該值時,終止此屬性的動畫。
受控屬性值的動畫在StopValue的值處完成。如果在「 持續時間」秒數結束之前呼叫了Stop,則該屬性的值將跳至StopValue值。
# 1.1.13. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 1.1.14. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 1.2. 事件(Events)
- TfxColorAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 1.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 1.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 1.3. 方法(Methods)
- TfxColorAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 1.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 1.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 1.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 2. TfxGradientAnimation
附加到對象的顏色漸變屬性以隨時間更改其值。
# 2.1. 屬性(Properties)
- TfxGradientAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
StartValue | 從此值開始此屬性的動畫 |
StopValue | 達到該值時,終止此屬性的動畫 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 2.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 2.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 2.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 2.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 2.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 2.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 2.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 2.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 2.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 2.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 2.1.11. StartValue屬性
從此值開始此屬性的動畫。
對於TFloatAnimation,StartValue是一個實數,包含用於開始對受控屬性進行動畫處理的值。如果StartFromCurrent為True,則在動畫開始時將StartValue重新分配給屬性的當前值。
# 2.1.12. StopValue屬性
達到該值時,終止此屬性的動畫。
受控屬性值的動畫在StopValue的值處完成。如果在「 持續時間」秒數結束之前呼叫了Stop,則該屬性的值將跳至StopValue值。
# 2.1.13. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 2.1.14. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 2.2. 事件(Events)
- TfxGradientAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 2.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 2.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 2.3. 方法(Methods)
- TfxGradientAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 2.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 2.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 2.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 3. TfxFloatAnimation
TfxFloatAnimation用於改動TFmxObject型別對象的數值型別的屬性值。
必需將TfxFloatAnimation拖放到fxRectangle1上,才可以實現動畫控制效果。
# 3.1. 屬性(Properties)
- TfxFloatAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
StartValue | 從此值開始此屬性的動畫 |
StopValue | 達到該值時,終止此屬性的動畫 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 3.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 3.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 3.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 3.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 3.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 3.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 3.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 3.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 3.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 3.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 3.1.11. StartValue屬性
從此值開始此屬性的動畫。
對於TFloatAnimation,StartValue是一個實數,包含用於開始對受控屬性進行動畫處理的值。如果StartFromCurrent為True,則在動畫開始時將StartValue重新分配給屬性的當前值。
# 3.1.12. StopValue屬性
達到該值時,終止此屬性的動畫。
受控屬性值的動畫在StopValue的值處完成。如果在「 持續時間」秒數結束之前呼叫了Stop,則該屬性的值將跳至StopValue值。
# 3.1.13. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 3.1.14. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 3.2. 事件(Events)
- TfxFloatAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 3.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 3.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 3.3. 方法(Methods)
- TfxFloatAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 3.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 3.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 3.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 4. TfxRectAnimation
附加到對象的TBounds屬性以隨時間更改其邊界。
# 4.1. 屬性(Properties)
- TfxRectAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
StartValue | 從此值開始此屬性的動畫 |
StopValue | 達到該值時,終止此屬性的動畫 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 4.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 4.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 4.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 4.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 4.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 4.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 4.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 4.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 4.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 4.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 4.1.11. StartValue屬性
從此值開始此屬性的動畫。
對於TFloatAnimation,StartValue是一個實數,包含用於開始對受控屬性進行動畫處理的值。如果StartFromCurrent為True,則在動畫開始時將StartValue重新分配給屬性的當前值。
# 4.1.12. StopValue屬性
達到該值時,終止此屬性的動畫。
受控屬性值的動畫在StopValue的值處完成。如果在「 持續時間」秒數結束之前呼叫了Stop,則該屬性的值將跳至StopValue值。
# 4.1.13. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 4.1.14. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 4.2. 事件(Events)
- TfxRectAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 4.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 4.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 4.3. 方法(Methods)
- TfxRectAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 4.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 4.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 4.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 5. TfxBitmapAnimation
附加到對象的TBitmap型別的屬性以隨時間改變其顯示影象。
# 5.1. 屬性(Properties)
- TfxBitmapAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartValue | 從此值開始此屬性的動畫 |
StopValue | 達到該值時,終止此屬性的動畫 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 5.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 5.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 5.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 5.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 5.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 5.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 5.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 5.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 5.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 5.1.10. StartValue屬性
從此值開始此屬性的動畫。
對於TFloatAnimation,StartValue是一個實數,包含用於開始對受控屬性進行動畫處理的值。如果StartFromCurrent為True,則在動畫開始時將StartValue重新分配給屬性的當前值。
# 5.1.11. StopValue屬性
達到該值時,終止此屬性的動畫。
受控屬性值的動畫在StopValue的值處完成。如果在「 持續時間」秒數結束之前呼叫了Stop,則該屬性的值將跳至StopValue值。
# 5.1.12. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 5.1.13. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 5.2. 事件(Events)
- TfxBitmapAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 5.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 5.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 5.3. 方法(Methods)
- TfxBitmapAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 5.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 5.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 5.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 6. TfxBitmapListAnimation
# 7. TfxColorKeyAnimation
附加到對象的屬性以隨時間更改該屬性的顏色。
# 7.1. 屬性(Properties)
- TfxColorKeyAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 7.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 7.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 7.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 7.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 7.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 7.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 7.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 7.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 7.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 7.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 7.1.11. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 7.1.12. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 7.2. 事件(Events)
- TfxColorKeyAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 7.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 7.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 7.3. 方法(Methods)
- TfxColorKeyAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 7.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 7.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 7.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 8. TfxFloatKeyAnimation
附加到對象的屬性以隨時間更改該屬性的尺寸。
# 8.1. 屬性(Properties)
- TfxFloatAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性。 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
PropertyName | 指定將對其應用動畫的屬性 |
StartFromCurrent | 從其目前值開始動畫此屬性 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 8.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 8.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 8.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 8.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 8.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 8.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 8.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 8.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 8.1.9. PropertyName屬性
指定將對其應用動畫的屬性。
# 8.1.10. StartFromCurrent屬性
如果StartFromCurrent為True,則將StartValue屬性設定為父級的受控屬性的當前值,然後從那裡開始動畫。
# 8.1.11. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 8.1.12. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 8.2. 事件(Events)
- TfxFloatAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 8.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 8.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 8.3. 方法(Methods)
- TfxFloatAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 8.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 8.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 8.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。
# 9. TfxPathAnimation
用於在指定路徑上移動視覺對象。
建立一個TfxPathAnimation實體,並將其Parent屬性設定為表單上的控制元件。使用Path屬性設定動畫的座標。 通過將對象的Rotate屬性設定為True,TfxPathAnimation可以在移動過程中旋轉對象。
# 9.1. 屬性(Properties)
- TfxPathAnimation元件主要屬性
屬性 | 功能說明 |
---|---|
AnimationType | 設定此動畫的插值表達式如何應用於動畫屬性 |
AutoReverse | 動畫開始到結束,結束再到開始 |
Delay | 在啟動動畫之前要等待的秒數 |
Duration | 設定動畫從開始到結束的總時長(單位:秒) |
Enabled | 啟動動畫 |
Interpolation | 設定動畫型別,可以實現很多特殊效果,如心跳,線性 |
Inverse | 向後而不是向前動畫 |
Loop | 無限重複播放動畫 |
Path | 指定將確定動畫路徑的點 |
Rotate | 動畫的路徑是從Path屬性給出的點派生的平滑樣條 |
Trigger | 用於啟動動畫的父對象的屬性狀態 |
TriggerInverse | 用於啟動動畫逆過程的父對象的屬性狀態 |
# 9.1.1. AnimationType屬性
確定如何應用動畫的插值。使用TAnimationType可以指定屬性的值如何從其起始值更改為結束值(StopValue)。想像一下二次函式的圖:y = x * 2。圖的斜率在x = 0處為零。這意味著y在x = 0附近變化非常緩慢。隨著x的增加,斜率變得越來越陡峭,這意味著y的變化越來越快。x表示動畫中的時間,而y是被動畫設定的屬性的值。
當TAnimationType為In且TInterpolationType為Quadratic時,此動畫所應用的屬性的值(PropertyName)在起點附近緩慢變化(等效于x = 0的四角函式)。在TAnimationType為Out的情況下,端點附近的更改緩慢。對於InOut的TAnimationType,兩端的更改都很緩慢。曲線圍繞中心點映象,並在中間相交。
TAnimationType可以採用以下值之一:
- In: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值開始
- Out: 應用於此動畫的TInterpolationType的曲線從動畫屬性的結束值開始,然後向後退回到起始值。
- InOut: 應用於此動畫的TInterpolationType的曲線從動畫屬性的起始值和結束值開始,並在中心點相交。
# 9.1.2. AutoReverse屬性
將常規動畫完成後,將AutoReverse設定為True,以從StopValue到StartValue向後動畫化受控屬性。前進和後退動畫各自花費持續時間(秒)。如果Loop為True,則前後動畫交替進行。向後動畫完成後,將呼叫OnFinish事件。
# 9.1.3. Delay屬性
開始動畫之前要等待的秒數。
延遲是一個實數,表示開始動畫之前要等待的秒數。該時間段是從執行Start方法開始的,或者,如果Enabled為True,則是從運行時的開始開始計算的。如果Loop為True,則延遲僅應用於動畫的開始。
# 9.1.4. Duration屬性
從起始值到終止值的動畫時間(以秒為單位)。
# 9.1.5. Enabled屬性
將動畫實體建立並附加到父實體后立即啟動動畫的設定為True。在設計時,在TAnimation的對象檢查器中或動態建立TAnimation時啟用。如果將Enabled設定為True,則不必執行TAnimation Start方法。你也可以將Enabled設為True來啟動動畫,但是你必須將Enabled設為False,然後再次設為True來運行動畫。另外,如果在動畫完成之前將Enabled設定為False,那麼如果StartFromCurrent為True,則將啟用True,否則將從StartValue重新運行動畫。
# 9.1.6. Interpolation屬性
動畫的插值屬性的型別。
確定如何隨時間將屬性的當前值(或StartValue)更改為目標值(StopValue)的速率。在繪製屬性值的圖形上,將動畫應用於(使用TAnimation PropertyName屬性)一個端點,該端點由t = 0處的起始值表示。另一個端點是t = 持續時間秒數時的停止值。許多不同的路徑可以連線這兩點。唯一的要求就是時間在不斷前進! TInterpolationType提供了多種路徑可供選擇。
使用TInterpolationType為Linear時,屬性的值隨時間線性變化,起點和終點之間的路徑是一條直線。TInterpolationType的此值和其他值如下所述。
TInterpolationType屬性值:
- Linear(線性的):線性插值。此動畫應用於的屬性值會隨著時間不斷變化。
- Quadratic(二次方的):二次函式應用於起點和終點之間的路徑。路徑的斜率在起點處為零,並隨時間不斷增加。將標量應用於該函式以使端點落在路徑上。
- Cubic(立方體) :插值的形式為y = x * 3。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quartic(四次) :插值的形式為y = x * 4。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Quintic(五重奏) :插值的形式為y = x * 5。路徑的斜率在起點處為零,並且比路徑上的二次函式快得多。
- Sinusoidal(正弦曲線): 插值的形式為y = sin(x)。路徑的斜率在起點處為零,而正弦曲線的第一個拐點(x = pi)在終點處。
- Exponential(指數的):插值的形式為y = e * x。路徑的斜率在起點處為1,並且比路徑上的二次函式快得多。
- Circular(圓):此插值的起點和終點之間的路徑是四分之一圓。路徑的斜率在起點為零,在終點為頂點。
- Elastic(有彈性):該路徑遵循漸進正弦幾何插值。路徑的正弦振幅可以在開始時較小,在結束時較大,反之亦然,具體取決於動畫型別(輸入/輸出)。
- Back(背部):該路徑不遵循幾何插值。值(y座標)增加,向著起始值移動,但是時間(x值)必須始終沿正方向移動。
- Bounce(彈跳):路徑描繪了一個彈跳球。該路徑由曲率遠離連線起點和終點的直線的圓形曲線組成。這些曲線由尖點連線。
# 9.1.7. Inverse屬性
將Inverse設定為True可以使受控屬性從StopValue到StartValue向後進行動畫處理。向後動畫需要持續時間(秒)。向後動畫完成後,將呼叫OnFinish。
# 9.1.8. Loop屬性
無限重複播放動畫。將Loop設定為True可以從StartValue到StopValue無限期重複動畫。該OnFinish事件處理程式不會被呼叫環是真。要停止循環播放的動畫,請呼叫Stop。
# 9.1.9. Path屬性
指定將確定動畫路徑的點。
動畫的路徑是從Path屬性給出的點派生的平滑樣條。
# 9.1.10. Rotate屬性
指定動畫對象是否在動畫過程中旋轉。
使用Rotate屬性指定在動畫過程中父控制元件是否應該旋轉。如果Rotate設定為True,則控制元件將旋轉,以便在向前動畫時底部朝路徑的方向,而在反向動畫時頂部朝路徑的方向。
# 9.1.11. Trigger屬性
用於啟動動畫的父對象的屬性狀態。
觸發器是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
觸發器用於確定何時開始動畫。當此屬性具有指示的狀態時,動畫將開始處理。
# 9.1.12. TriggerInverse屬性
用於啟動動畫逆過程的父對象的屬性狀態。
TriggerInverse是TTrigger型別的字串屬性。見T觸發器有關的可能值的資訊觸發。
TriggerInverse用於確定何時開始動畫的逆過程。例如,如果將Trigger設定為'IsMouseOver=true',並且動畫將父按鈕的紅色更改為藍色,則Trigger或其動畫中沒有任何內容可以將按鈕重新變回紅色。如果TriggerInverse字串設定為'IsMouseOver=false',則當滑鼠離開按鈕時,動畫的逆序開始。
# 9.2. 事件(Events)
- TfxPathAnimation元件主要事件
事件 | 何時觸發 |
---|---|
OnFinish | 動畫停止后呼叫的事件處理程式 |
OnProcess | 在處理動畫期間呼叫的事件處理程式 |
# 9.2.1. OnFinish事件
動畫停止后呼叫的事件處理程式。
動畫在開始後會持續一段持續時間(秒),而在呼叫「 開始」的過程完成很長時間之後。動畫完成後,將所需的所有處理放入OnFinish事件處理程式中。如果Loop屬性為True,則不會呼叫OnFinish,除非呼叫Stop方法。
# 9.2.2. OnProcess事件
在處理動畫期間呼叫的事件處理程式。
動畫控制的值更改時,將反覆呼叫OnProcess。如果動畫改變了父對象的外觀,則父對像將自動重新繪製。如果在OnProcess內部進行處理導致在父級邊界框外進行繪製,請呼叫表單的Invalidate方法。
# 9.3. 方法(Methods)
- TfxPathAnimation元件主要方法
方法 | 功能說明 |
---|---|
Start | 開始運行動畫 |
Stop | 停止動畫的運行 |
StopAtCurrent | 動畫停在目前值 |
# 9.3.1. Start
開始運行動畫。
- 動畫對象也是動畫的父對象,必須是可見的可視對象。否則,呼叫啟動無效。
- 開始將初始化動畫處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 如果在動畫完成之前停止動畫,則如果StartFromCurrent屬性為True,則動畫將以目前值恢復,否則動畫將從StartValue重新開始。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 9.3.2. Stop
停止動畫的運行。
- 停止將終止動畫的處理。對於動畫運行時間秒鐘從動畫的變化控制的屬性在startValue到StopValue。您可以使用Stop方法終止動畫。這對於將Loop屬性設定為True並可以永久運行的動畫非常方便。
- 執行Stop時,受控屬性值立即移至StopValue。 StopAtCurrent停止在目前值。
- 您也可以使用Enabled屬性來啟動和停止動畫。
# 9.3.3. StopAtCurrent
動畫停在目前值。
StopAtCurrent會立即以目前值停止動畫。這不同於Stop,後者立即移動到StopValue然後停止。