視覺小說點擊顯示完整文字時,如何避免同一次操作又跳到下一句
分別訂定顯示完整文字、離開目前句子與進入選項頁的規則:一次推進輸入只歸屬於接收它時的狀態,完成動作後立即消耗,不能隨狀態改變再次使用。透過信使對話的虛構範例,填寫可直接交接的點擊推進狀態表。

開篇導讀
要避免點擊顯示完整文字後又跳到下一句,應規定:一次推進輸入只依接收時的狀態處理一次。文字尚未顯示完,只顯示全文;全文已顯示且允許離開,才推進;頁面正在離開,輸入作廢,不留待後續使用。狀態改變不能讓同一次輸入重新取得資格。
以下用信使對話示範如何寫成可交接的規則。這是虛構教學範例,並非真實使用者案例、實測結果或 DramaFork 產品功能,也不代表任何引擎的預設行為。
先拆開「文字顯示完成」與「離開目前句子」
信使的台詞是:「信已送到。天亮之前,請別打開。」文字逐步出現,人物站在門邊。讀者第一次點擊,是為了立即看完整句話;第二次明確推進,才讓信使退場,接著顯示「拆信」與「收好」兩個選項。
先在劇本旁寫下三個完成點:全文可見、讀者要求離開、退場演出結束。它們可能前後相鄰,卻不能用一個含糊的「句子結束」代替。否則,負責文字的人可能在顯示全文時發出結束通知,負責人物的人收到通知便讓角色退場,頁面又跟著切換。
本例將「信使退場」歸於離開目前句子。文字自然顯示完畢或點擊顯示全文,都只讓全文可見,人物繼續等待。因此,伴隨事件不應一律隨點擊顯示全文而觸發:表示文字顯示完成的裝飾效果可以綁定全文可見;改變劇情位置的退場動作則綁定明確推進。
若某個詞必須搭配敲門聲才能理解,應另行註明點擊顯示全文時如何處理聲音。這裡選擇在顯示全文後播放這段必要提示,提示結束前暫不開放推進。代價是讀者無法立即離開,但不會在顯示全文時順勢略過必要資訊。
用一張狀態表限定輸入能做什麼
這裡的「消耗」表示此次輸入已經處理完畢,後續文字、人物與選項都不能再次使用它。「下一次輸入」必須來自放開後重新按下,不能是同一次按壓產生的重複通知。
| 目前顯示狀態 | 輸入動作 | 消耗結果 | 事件觸發 | 下一次輸入資格 |
|---|---|---|---|---|
| 目前句子尚未顯示完 | 新的推進輸入 | 顯示目前句子的全文,立即消耗 | 全文可見;不觸發退場 | 本次放開後,重新按下可推進;必要提示尚未結束則繼續等待 |
| 全文可見,必要提示尚未結束 | 新的推進輸入 | 消耗並作廢,不排隊 | 不觸發退場 | 提示結束且舊按壓已放開後,接受新輸入 |
| 全文可見,可以離開 | 新的推進輸入 | 要求離開,立即消耗 | 本句退場演出啟動一次 | 離開期間不接受推進 |
| 目前頁面正在離開 | 點擊、重複按鍵通知 | 作廢,不帶到下一頁 | 不重複退場,不略過演出 | 目標頁面就緒且舊按壓已放開後重新開放 |
| 選項頁已出現 | 舊輸入的放開或重複通知 | 作廢 | 不送出選擇 | 接受本頁可互動之後才開始的新操作 |
| 選項頁可以互動 | 新的選項操作 | 交由選項規則處理 | 只送出明確操作的選項 | 依選擇送出後的目標狀態重新判定 |
表中最容易漏掉的是「作廢,不排隊」。如果退場期間的點擊被暫存,等頁面就緒後再執行,讀者仍會覺得內容自己跳走了。交接時應將「暫時不處理」改成明確的「丟棄」或「保留」;本例選擇丟棄。
沿著信使對話逐次推演
第一步,畫面只顯示「信已送到」。讀者按下滑鼠按鈕,接收輸入時屬於文字尚未顯示完成的狀態,因此只顯示整句,並將該輸入標記為已消耗。即使處理結束時全文已經顯示,也不再檢查該輸入能否推進。信使仍站在門邊。
第二步,讀者放開滑鼠按鈕。這只是結束剛才的按壓,並非一次新的推進。若實作選擇在放開時辨識點擊,也必須將先前的按下與這次放開歸為同一次操作,不能各執行一個動作。
第三步,讀者重新按下,此時全文可見且允許離開。先進入離開狀態,再啟動信使退場。如此一來,演出啟動過程中即使又收到通知,也只能依離開狀態將其作廢,不能重新啟動同一場退場演出。
第四步,讀者在信使走向門外時又點了一下。這次點擊直接作廢。退場結束後,兩個選項出現,剛才的輸入不能替讀者選擇「拆信」。若此時滑鼠按鈕仍按住,隨後放開也不送出選擇。
第五步,舊按壓全部放開,選項頁已可互動。讀者重新按下並完成一次選項點擊,才送出「收好」。這一連串推演的檢查依據是:每次操作都有明確歸屬,顯示全文、退場與送出選擇沒有共用同一次輸入。這是紙上推演,並非已執行的測試報告。
單次點擊與按住必須分別訂定規則
本例將滑鼠、觸控與鍵盤統一為「新操作開始時取得一次資格」。具體以按下或完整點擊作為觸發點,可由專案決定,但同一次操作不能在按下時顯示全文,放開時又推進。
鍵盤長按也不等於讀者反覆表達了推進意圖。本例只接受首次按下,持續按住期間的重複通知全部忽略;放開後再按,才算下一次。按鍵一直按住並進入選項頁時,既不推進,也不確認目前選項。
若作品需要按住連續閱讀,應另訂持續閱讀規則,寫清楚啟動方式、停止條件及遇到選項時的處理。不能將一般推進鍵的重複通知當成未經說明的連續閱讀功能。兩套規則共用同一輸入來源時,也必須指定目前由誰接收。
真正的兩次快速點擊是兩次操作:第一次顯示全文,第二次可能離開。本規則解決的是同一次操作被重複使用,無法保證阻止所有誤觸雙擊。若要額外延遲第二次點擊生效,應另列規則,並接受主動快速閱讀也會被延遲的取捨。
交接時檢查邊界,不只檢查順暢閱讀
請實作人員依表逐項填回接收前狀態、輸入歸屬、唯一動作與處理後狀態。重點檢查三個失敗點:顯示全文後繼續執行推進判斷;退場期間仍保留輸入;選項頁接收了從舊頁面開始的按壓。這三項分別需要在本次處理結束、轉場期間與新頁面入口處落實邊界。
還要推演文字自然顯示完成與點擊幾乎同時發生的情況。本例以閱讀邏輯接收輸入時的狀態為準:尚未完成就顯示全文,已經完成就推進;確定歸屬後,不因後續通知而改變。若專案希望在文字自然顯示完成後,為讀者留出保護時間,應另訂資格條件,不能依賴處理順序碰巧達成。
這張表適用於手動逐句閱讀。自動播放、回顧、讀取存檔還原和允許略過演出的模式,需要各自補充進入與退出規則。交付時將台詞、退場事件、必要提示與選項頁都填入同一張表,讓每個接收輸入的環節都能回答:這次操作歸誰,做完後在哪裡終止。






