国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 媒體動畫 > 正文

Director基礎教程:Director 設計自己地行為(2)

2024-09-08 19:27:08
字體:
來源:轉載
供稿:網友
director 編寫自己的行為
四、完善自己的行為

   雖然“guide”行為已經能夠發揮其應有的作用,但離完整的行為還有一段距離,下面讓我們來對其進行一些完善。

   1. getpropertydescriptionlist函數的使用

   在編寫上面的“guide”行為時,我們使用了一個名為“getpropertydescriptionlist”的函數,那么這個函數具體有什么作用呢?

   getpropertydescriptionlist函數實際上返回的是一個屬性列表,而其中的屬性和屬性值是利用列表命令addprop添加的。具體到這個“guide”行為來說,此屬性列表中只有一個屬性“#ptargetframe”,而其值仍然是一個列表[ # comment: "go to frame" , # format: #integer , # range: [ # min: 1 , # max: 25 ], # default: 1 ]。使用getpropertydescriptionlist函數,可以建立一個參數對話框,其中#comment用來顯示參數的描述信息,#format用來限定參數的取值類型,#range用來限定參數的取值范圍并確定參數的取值,default為參數的缺省值。要注意的是,#range屬性并不是必需的。如果沒有#range屬性的話,則需要手動輸入一個參數的取值。

   2. runpropertydialog函數的使用

   在某些情況下,我們希望行為能夠半自動地設置其參數,而無需每次使用時都進行手動設置,此時runpropertydialog函數便發揮作用了。例如,我們可以為“guide”行為添加下面的代碼:

on runpropertydialog me , list
setprop list , # ptargetframe, 7
pass
return list
end

   現在如果將這個行為拖拽到一個角色上的話,會出現下面的參數對話框:

   這便是runpropertydialog函數的作用:使用屬性列表命令setprop將ptargetframe的取值預設為7,從而無需我們手動設置。更為“神奇”的是,如果去掉其中的“pass”命令,參數對話框將不會出現,但setprop命令仍然有效,這樣便實現了參數的半自動設置。

   3. isoktoattach命令的使用

   此命令的含義顯而易見,即檢測行為是否“is ok to attach”,當我們需要限定行為的使用范圍時,就可以利用isoktoattach命令。試著將下面這段代碼加入“guide”行為中:

on isoktoattach me , spritetype, spritenum
if spritetype = # graphic then
if sprite ( spritenum ). member . type = # button then
return true
else
return false
end if
end if
end

   如果現在再拖拽這個行為就會發現,它不會像以前那樣可以被添加到任意的角色上,因為此時isoktoattach命令已經限制其“只能添加給#button類型的演員生成的角色”。當然,對于isoktoattach命令,除了#button以外,還有許多可供我們選擇的參數,在這里就不一一列舉了。

   4. getbehaviordescription函數和getbehaviortooltip函數的使用

   與其他的部分相比,getbehaviordescription函數和getbehaviortooltip函數的作用就不是那么重要了,不過它們仍然是構成完整行為的兩個有機部分。

   如圖所示,getbehaviordescription函數返回一個字符串,并將其顯示在行為監察窗內:

   而getbehaviortooltip函數的作用更為簡單:將一個返回的字符串作為其所屬行為在庫面板中的一個“tool tip”。只有當我們將一個行為添加到庫面板后,才需要這一功能。

五、一點說明

   雖然我們編寫的這個“guide”行為本身非常簡單,但卻涵蓋了一個完整行為所涉及的全部內容,因為無論一個行為多么復雜,其本身均由下面幾部分組成:

   * property變量的聲明
   * getpropertydescriptionlist函數
   * runpropertydialog函數
   * isoktoattach命令
   * getbehaviordescription函數
   * getbehaviortooltip函數
   * 行為主體代碼

   當然,這七個部分并不都是必需的。一般情況下,只需包含property變量的聲明、getpropertydescriptionlist函數和行為主體代碼即可。

   只要把握住以上幾點,我們便可以舉一反三,編寫更多的自定義行為來滿足不同的需求。如果在編寫行為時遇到了困難,可以參考director庫面板內置的一些簡單行為,會有不小的收獲。

相關附件(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昆山市| 宜兰市| 富民县| 响水县| 青阳县| 曲沃县| 信宜市| 手机| 崇文区| 广丰县| 肇庆市| 秭归县| 瑞安市| 彰化市| 萨嘎县| 武宣县| 濮阳市| 阿尔山市| 翁牛特旗| 舞钢市| 平顺县| 永城市| 津市市| 大荔县| 萝北县| 泸溪县| 娄底市| 乐安县| 永川市| 邵阳县| 阿尔山市| 吉木乃县| 河津市| 河东区| 安西县| 新竹市| 上杭县| 孟津县| 枣庄市| 海口市| 息烽县|