麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

Director綜合技巧:Director里面事件發生地順序及其意義

2024-09-08 19:26:56
字體:
來源:轉載
供稿:網友
director中事件發生的順序及其意義
    我開始學習lingo的時候,在幾個困擾我的幾個嚴重問題中,事件的執行順序就是其中之一,所以我現在把它們的整理出來,希望對還被這個問題騷擾的同志們有所幫助(部分資料來自aougu的lingo詞典)。如果那位有補充,歡迎跟帖。

基于方便起見,假設一個電影中只有一個精靈而且只有第一幀,那么事件的執行順序是這樣的:
-- "preparemovie"
-- "beginsprite"
-- "prepareframe"
-- "startmovie"
-- "enterframe"
-- "exitframe"
-- "stopmovie"
-- "endsprite"

下面分別說明:

-- "preparemovie" :

系統消息和事件處理程序;所包含的語句在電影調入演員后、做下列事情前執行:

建立所播放的第一幀中sprite所屬行為的實例。

預備播放第一幀,包括畫出此幀,播放任何聲音、以及執行過渡和調色板效果。

用于第一幀sprite行為的新全局變量應在處理程序on preparemovie中初始化
。在以前的電影已經設定的全局變量無需復位。 處理程序on preparemovie是一個放置lingo的好地方,以建立全局變量、初始化變量、在電影其余部分調入內存的同時播放聲音、或檢查與調整計算機狀態(如色深)的好地方。

*此時,電影中的第一幀的演員已經載入,但是還沒有進行初始化,因此這里可以對電影進行初始化,但是可能很多針對精靈,演員等具體內容的命令不能正確執行。

-- "beginsprite":

系統消息和事件處理程序,當播放頭進入一幀,這一幀里首次出現了某個sprite時運行包含的語句。象endsprite,即使播放頭在這一幀上循環,這個事件也將只發生一次。這是因為觸發事件的sprite不是首次出現。這個事件在prepareframe前發生。當beginsprite的消息被發送的時候, director會給任一附在這個sprite上的事件腳本建立一個實例。如果被使用在行為上,對象參數me會忽略這個事件。這條消息將被發送到行為和幀腳本。如果一個sprite在電影的第一幀出現,那么beginsprite的消息將會在preparemovie后但在prepareframe和startmovie事件前發送。

注意:

需要注意某些sprite屬性,如rect屬性可能就不能受begainsprite處理程序的

控制。因為這個屬性需要計算,并且在舞臺更新以前不能完成。

*由于這個事件之出現一次,所以這是個把對精靈腳本甚至幀腳本初始化的好地方,如設定屬性變量的初始值等。

-- "prepareframe":

系統消息和事件處理程序;包含的語句在畫當前幀以前立即執行。 與

beginsprite和endsprite事件不同,每次播放頭進入幀時都產生prepareframe

事件。 處理程序on prepareframe是一個在sprite畫出前改變sprite屬性的有

用的地方。

如果用于行為,處理程序on prepareframe接收me引用。

*此時,第一幀已經準備完畢,所以完全可以對精靈,演員的屬性等進行控制,這里是一個更改屬性的好地方。

…注意…由于以上三個事件發生的時候,精靈還沒有畫出,所以命令go,

play和updatestage在處理程序內無效。

-- "startmovie":
影片事件處理程序,當影片的第一幀剛剛顯示完畢時,該處理程序被調用。
*好像不多用,當然,有些命令可能需要放在這里,如go,play等。

-- "enterframe":

系統消息和事件處理程序;每次播放頭進入該幀的時候就執行包含在里面的語句. on enterframe事件處理程序放在行為,幀或者電影腳本中.像下面這樣:

要分配一個處理程序給獨立的sprite, 把處理程序寫進一個附在sprite上的行為中.

要分配一個處理程序給獨立的幀, 把處理程序寫進幀腳本.

分配處理程序到每一個幀中, 把 on enterframe 處理程序寫入電影腳本中.

處理程序每次會在播放頭進入一幀的時候執行除非幀腳本由自己的處理程序. 如果幀腳本由自己的處理程序, 幀腳本中的on enterframe
會忽略電影腳本中的on enterframe處理程序.

*此時,當前幀已經畫出,所以這時候改變精靈的屬性并不是令人稱道的事情,因為很可能會導致畫面的閃動。當然,還是有些腳本可以在有預謀在這里使用。

-- "exitframe":

系統消息和事件處理程序;exitframe包含的語句將在每次播放頭退出該幀的時候執行. onexitframe 處理程序是一個比較有用的地方來使得lingo重新設置離開幀之后的環境。on exitframe事件處理程序放在行為, 幀或者電影腳本中,就像下面這樣:


分配處理程序給獨立的sprite, 把處理程序寫在依附在sprite上的行為中. 分配處理程序給獨立的幀, 把處理程序寫在幀腳本中. 分配處理程序到每個幀除非有其他額外的條件,否則就把處理程序放在電影腳本中. on exitframe處理程序就在每次播放頭退出一個幀的時候生效,除非這個幀有自己的on exitframe處理程序. 當該幀腳本有自己on exitframe處理程序的時候, 該幀on exitframe 處理程序取代電影腳本中的那個處理程序.

*眾所周知,這是我們使用最頻繁的事件,很多腳本都推薦在這里使用。我的原則是:如果能在這里使用,那么我不會放到別的什么地方去。

-- "stopmovie":

系統消息,影片事件處理程序。當影片停止或結束時,該處理程序運行。

*此時,已經運行結束,如果你在電影運行的時候曾使用程序更改過某些東西的話,也許你應該在這里把它恢復過來。

-- "endsprite":
系統消息和事件處理程序;在播放頭離開一個sprite并且進入了一個不存在該sprite 的幀中的時候,執行其中包含的lingo語言. 他在exitframe以后發生.endsprite事件處理程序放在行為腳本中.一旦endsprite事件發生,director就破壞附在sprite上的任何行為腳本的例程.如果這個事件在一個行為中被使用,他將被傳遞到行為或者幀腳本所引用的me對象去.如果播放頭播放到了一幀的結束endsprite消息將在exitframe消息之后發送. go , play , 和updatestage命令在on endsprite處理程序中無效.

*老實說,我絕少用到這個事件,因為我感覺在這里我幾乎做不來什么,也許能消除些什么?

以上內容簡單來說就是這樣的:


-- 電影調入演員,電影屬性等;
-- "preparemovie"
-- 播放頭進入第一幀,實例化腳本;
-- "beginsprite"
-- 當前幀準備完畢;
{
-- "prepareframe"
-- 畫當前幀;
-- "startmovie"

[1] [2] 下一頁  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 老女人碰碰在线碰碰视频 | 成人在线网站 | 国产一级二级在线播放 | 精品久久久久久成人av | 久久艹综合 | 精品av在线播放 | 久久在现视频 | 免费午夜网站 | 毛片区| 成人免费在线视频 | 国产精品亚洲综合 | 亚洲精品成人久久 | 免费在线观看成人av | 久久99国产精品久久 | 1024亚洲天堂 | 久久久在线 | 亚洲第一成人在线 | 国产精品久久久毛片 | 欧美一级精品片在线看 | 成人免费看片a | 桥本有菜免费av一区二区三区 | 欧美www| 黄色毛片免费看 | 91羞羞 | 成人午夜免费在线观看 | 亚洲5区 | 91精品国产一区二区在线观看 | 免费久久久| 日日草夜夜操 | 色诱亚洲精品久久久久久 | 久草在线视频免费播放 | 亚洲影院在线 | 看片一区 | 精品在线免费播放 | 日本高清在线免费 | 最新在线黄色网址 | 中文字幕爱爱视频 | 黄色免费大片 | 中文字幕涩涩久久乱小说 | 黄色片视频观看 | 91网站在线观看视频 |