首頁 > web前端 > js教程 > 腳本編寫:為 After Effects 腳本建立視窗

腳本編寫:為 After Effects 腳本建立視窗

Patricia Arquette
發布: 2025-01-22 20:35:11
原創
270 人瀏覽過
Contents
1. Introduction 6. Buttons
2. Windows 7. Options
3. Groups 8. Example
4. Panels 9. Conclusion
5. Text

介紹

當您需要最終使用者輸入資訊並顯示說明時,為腳本建立視窗是理想的選擇。在本文中,我將介紹使用一些基本的 javascript 和 Adob​​e Extendscript Toolkit CC 為 AE 腳本建立視窗的基礎知識。


視窗

製作你的窗戶,非常簡單:

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登入後複製
登入後複製
登入後複製

new Window() 是建立視窗的參數。然後,您需要在內部指定類型、標題和邊界。調色板視窗適用於 After Effects 腳本,並且還建議將邊界保留為未定義,因為大小和位置稍後可能會受到影響。

呼叫您的視窗:

mainWindow.show();
登入後複製
登入後複製

由於視窗中目前沒有任何內容,這將簡單地呼叫一個小視窗來顯示它正在工作。

Screenshot of window with nothing in it


團體

接下來要做的是建立一個物件來儲存視窗的資訊。

「群組」允許您組織其中的物件。在 mainWindow.show() 之前將此行新增到您的腳本中:

group01 = mainWindow.add("group", undefined, "Group 01");
登入後複製
登入後複製

我們將群組新增到主窗口,概述類型、邊界和文字屬性。由於我們要新增一個群組,因此第一個參數是「group」。同樣,您可以不定義邊界。最後,包括您希望為該群組命名的內容。預設情況下,這不會顯示在視窗中。

Screenshot of a group object with the text

面板的預設方向是按行。如果您想將其變更為列排序,可以透過將其新增至腳本:

group01.orientation = "column";
登入後複製
登入後複製

面板

但是,如果您確實希望群組的名稱可見,則可以考慮使用「面板」物件。這種類型的物件有助於分割視窗的某些部分:

group02 = mainWindow.add("panel", undefined, "Group 02");
登入後複製
登入後複製

它與「群組」物件具有相同的屬性,但顯示略有不同。

Screenshot of a panel object with the text

面板的預設方向是按列。如果您想將其變更為按行排序,可以透過將其新增至腳本:

group02.orientation = "row";
登入後複製

文字

您可能想要在腳本中包含 2 種類型的文字:靜態文字和可編輯文字。

靜態文字
靜態文字可用於向最終使用者提供說明。將“statictext”加入您的物件中,如下所示:

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登入後複製
登入後複製
登入後複製

我們再次使用新增控制對象,具有相同的類型、邊界和文字參數。

可編輯文字
可編輯文字提供了一個文字方塊欄位供最終使用者輸入。如果我們的腳本需要來自最終用戶的信息(例如可自訂的文字層),這非常有用。將“edittext”新增到您的物件中,如下所示:

mainWindow.show();
登入後複製
登入後複製

這只是一種不同類型的物件。我們在文字參數中提供的文字最初將位於文字方塊中,供最終使用者刪除並在其中寫入自己的文字。

Screenshot of script displaying a static text and editable text example.

如您所見,由於未定義框的大小,可編輯框中的文字被稍微剪切掉。我們可以事後定義大小來解決這個問題:

group01 = mainWindow.add("group", undefined, "Group 01");
登入後複製
登入後複製

這使我們能夠在以後調整文字框的大小,如果我們願意的話。

Screenshot of script displaying a static text and editable text example,with a slightly bigger text box.


按鈕

您的腳本也可能需要按鈕,至少為最終用戶提供「運行」腳本的選項。

新增按鈕是類似的過程:

group01.orientation = "column";
登入後複製
登入後複製

這將創建我們的按鈕。

Screenshot of a script with a run button.

但是,為了讓我們的按鈕執行任何操作,我們需要告訴腳本在按下按鈕時要做什麼。我喜歡創建一個函數來容納我希望按鈕完成的所有任務。

group02 = mainWindow.add("panel", undefined, "Group 02");
登入後複製
登入後複製

在這裡,我們使用 button01.onClick 運行我們的第一個函數,我們要求它運行 app.beginUndoGroup("Tutorial"),以便撤消腳本是 After Effects 內部的單一操作。接下來,我們告訴它運行我們的函數completeTasks。在下面,我定義了函數completeTasks。在這裡,包括您希望按鈕完成的所有操作(目前,我的按鈕僅關閉腳本視窗),並透過新增 app.endUndoGroup("Tutorial") 關閉撤消群組來完成該功能。

我將在以後的文章中詳細介紹這一點。


選項

可用的控制對象的其他選項位於 Javascript 工具指南 CC

此處涵蓋了複選框、下拉式選單、單選按鈕和滑桿等對象,僅舉幾例,並遵循類似的過程來添加文字或按鈕。


例子

讓我們將有關 Windows 的知識與上一篇文章連結起來,並製作一個用於建立和開啟新合成的範例腳本。

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登入後複製
登入後複製
登入後複製

讓我們來看看這個腳本。

我先建立我的視窗和群組。 Group01 是我的“面板”,將標題“描述”新增到靜態文字中。同時,我的其餘物件進入 Group02,一個「群組」物件。因為我希望 Group02 的方向是一列,所以我在這裡設定。

然後,我建立我的物件。我從 Group01 內的靜態文字開始。接下來,我在 Group02 內建立 2 個 edittext 對象,以便使用者指定他們想要建立的新合成的大小,並指定這兩個文字欄位的大小。最後,我創建一個按鈕,以便最終用戶可以運行該腳本。

創建了所有變數後,我就創建了函數。我首先按照說明為按鈕設定 onClick 函數,方法是開啟撤銷群組並執行自訂函數completeTasks。

然後我定義completeTasks。首先,我需要對 compWidth 和 compHeight 編輯文字物件的文字使用 parseInt()。這會將它們從文字轉換為整數,以便腳本的其餘部分可以理解輸入。完成此操作後,我建立一個新的合成,將寬度和高度設定為使用者輸入的值。然後,在腳本視窗關閉之前,合成將開啟並成為活動合成,並且撤銷循環將關閉。

執行此腳本可讓您將新的合成設定為文字欄位中指定的寬度和高度值。

可以透過新增警報來改進此腳本,如果文字欄位中新增的任何內容不是整數(或可能設定最大值),則警告使用者腳本已失敗。我將在另一篇文章中更詳細地討論這一點。目前,如果文字欄位中存在非法字符,則腳本將無法運作,直到寬度和高度文字欄位都輸入數字為止。

Screenshot of completed script


結論

使用 Adob​​e Extendscript Toolkit CC 為 After Effects 腳本建立視窗的初學者指南到此結束。下一篇文章我將介紹為您的作品創建不同類型的圖層。

以上是腳本編寫:為 After Effects 腳本建立視窗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板