Origami入門教程8-視頻4:Creating a New Post(中)

Posting(發布內容)#

點擊發布按鈕,我們想要把新內容插入首頁內容的頭部。回頭看一下首頁信息流的圖層組,我們可以把它重命名為“Feed Strip”,顯然,它需要增加長度,并把新內容容納進來。所以,當新內容進來時,首頁信息流的高度也要隨之變化,而已知這個內容框的高度是900,所以首頁信息流的高度也要增加900。把光標懸停在Feed Strip的Pixels High,按下鍵盤“t”,添加Transition模塊。當按下了Post按鈕,首頁的高度要增加900,此時Transition模塊的輸入端口Progress數值一定是1,所以我們先把它設為1,End Value自然是2100+900。再雙擊Feed Strip圖層組進入,把原來信息流的Anchor Point改成Bottom Center,使新內容進來后原來的頁面定位到底部中心,再把新內容的位置Y Position調為909。這樣,發布內容的位置就設好了。

調整新內容位置.png

Resizing the Scroll Content(調整滾動內容的大小)#

現在,我們來使首頁信息流以動畫方式來增加高度,把光標懸停在Pixels High Transition模塊的Progress端口上,按下鍵盤“a”,添加Pop Animation模塊。接著,需要一個開關來記住是否發布了新內容的狀態。按下Post按鈕后,才會出現新內容。按下鍵盤“shift+s”,添加Switch模塊,把它插到Pop Animation的Number端口。不過,這時候會發現,新內容的圖層覆蓋了首頁信息流,這是因為默認狀態下,開關輸出為0,導致Transition模塊的Progress變成了0。最快的修復方法是,把新內容圖層的順序改為1,讓它在原來的首頁信息流的下面。

增加開關模塊.png

然后,就是讓“Post Button Up”來控制打開開關了。我們可以復制粘貼一個“Post Button Up”,然后把它插到開頭的Turn On端口。現在來試一下效果,點擊首頁右下角添加按鈕,進入內容發布頁,點擊右上角發布按鈕,新內容出現了。不過,因為我們發現顯示的時候,動畫是在發布新內容頁面圖層的下方出現的,顯然不正確。

Conditional Logic(條件邏輯)#

想要做到的效果是,新內容進來時,原來的首頁會動態地向下移動。從實現的角度來考慮,實際上是當按下發布按鈕且發布內容頁離開屏幕后,首頁的高度增加。如何判斷發布內容頁是否離開了屏幕呢?很簡單,只要看它當前的Y Position是否小于真正離開屏幕時的Y Position就可以了。這時,我們需要使用Conditional Logic模塊。按下鍵盤“c”,即可添加到文檔里。把控制Composer圖層Y Positon的Transition模塊的Value插到First Value。我們看到,當真正離開屏幕時,發布內容頁的Y Position是-1341,所以當First Value小于-1340時,就說明頁面完全離開屏幕了,于是把Second Value設為-1340,Condition設為Lower Than。順便把Conditional Logic模塊重命名為“Composer is Off Screen”,把上面的開關命名為“Post Button Was Hit”。前面講過,當按下發布按鈕且發布內容頁離開屏幕后,再開始動態地增大首頁的高度,把光標懸停在Pop Animation的Number端口上,按下鍵盤“shift+a”,添加邏輯模塊AND,再把Conditional Logic的Result插到它的輸入口。這時,我們點擊添加按鈕,出現發布內容頁,點擊發布,新內容就會等到上一頁面離開屏幕再動態地插入了。

添加條件邏輯模塊.png

Fixing the Close Button(修復關閉按鈕)#

再次添加按鈕,出現發布內容頁,點擊關閉按鈕,發現還會插入新內容,這是為什么呢?檢查一下,因為當Switch被Post Button Up打開了之后,沒有關閉,就一直處于打開狀態。應該在首頁點擊添加按鈕時,先把這個開關關掉。把添加按鈕對應的Interaction2模塊的Up端口插到Turn Off就OK了。

修復關閉按鈕.png

Delay Patch(延遲模塊)#

我們繼續做些優化。眼尖的同學會發現,在首頁點擊添加按鈕后,可以看到發布內容頁滑上來的同時,底下的首頁信息流也將向上滑動變回到原來的高度,在實際正常的交互中,應該給用戶感覺到底部是不變化的,只有發布內容頁向上滑。為了修復這一點,我們可以把首頁信息流高度恢復到原來的動畫稍微延遲一些,這樣在發布內容頁上滑出現的時候,看上去底部的頁面是不動的。Pop Animation的輸入是AND之后的結果,如果發布按鈕被點擊且發布內容頁離開屏幕,這個結果是1,當在首頁點擊添加按鈕時,結果是0。我們是希望只在點擊添加按鈕時,首頁信息流的動畫延遲出現,所以是從1減成0時有延遲。按下鍵盤“d”,添加Delay模塊,把AND的結果插到它的Value輸入口,再把它的Value輸出口插到Pop Animation的Number端口。然后,把Style選擇為Delay Decreasing,這樣就只有當數值從1減為0時才會有延遲,延遲時間默認是0.5秒。這時,就得到想要的效果了。

添加延遲模塊.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容