[英]What is the difference between a Morph in Morphic and a NSView in Cocoa?
我想知道使Morphic特別的事物。
Morphic遠遠超過了NSView或任何其他僅允許重新實現一組有限功能的圖形類。 Morphic是一個非常具有延展性的UI構造工具包。 Morphic背后的一些設計思想清楚地表明了這一意圖:
#drawOn:
方法及其子變形的位置在其自己的坐標系中表示。 警告:Smalltalk的動態環境是一個紅色葯丸 。 靜態的凍結語言對您而言永遠不會相同;-)
簡而言之:Morphic是一個虛擬世界 ,您可以在其中直接探索活動對象 (就像現實世界一樣)。 您是否曾經看過UI並...
盡管這些想法會在其他任何環境中導致痛苦和沮喪,但在Morphic中卻不會。
如果您想打定主意,請在變身世界中成為神:
啟動Pharo圖像,然后單擊背景(實際上是“世界”)以調出世界菜單:
在菜單選項之一上調出“暈輪”(在Mac上按住Shift鍵並單擊鼠標):
拖動“拾取”光暈(中上)並將其拖放到世界上的某個位置:
享受你需要的地方現在是可用的菜單項:
認真地,單擊它並觀看瀏覽器打開!
曾經有你總是使用一個廠商都埋三菜單層次深的選項? 這有用嗎? 這是對實時直接GUI環境(如Morphic)的強大功能的一瞥。
如果您感興趣,請閱讀John Maloney和Randall Smith的論文《形態用戶界面構建環境中的直接性和生動性》。
標題不代表您的問題,所以我回答您的問題,而不是標題。
最近兩天,我已經閱讀了有關Morphic的內容,並以我認為使morphic特殊的內容作為結論。
Morphic非常適合實時編碼 。 這是一種直接映射,因此當更改代碼時,屏幕上的輸出也會更改。 和/或如果更改了屏幕上的變形,則代碼中的值也會更改。 藝術表演太酷了!
但是Morphic的目標是實現更高的抽象度。 從代碼中抽象出了morph的屬性。 將SoC寫入文件或獲取服務器端數據庫。
我想WebStorage和JavaScript文件是存儲交互更改的Morph屬性的活動狀態的好選擇。 您會看到-編程是通過每個Morph完成的。 然后,該代碼僅需要處理單擊和拖動中的事件。
研究的目的甚至將代碼抽象掉了。 可以通過“變形”進行編碼,以定義單擊或拖動時發生的情況。 變形可以像Scratch一樣是拼圖。
必須將程序備份到某個位置的文件中。 我不認為在雲上進行編碼是安全的。 因此,JS文件是唯一的選擇(如果不設置服務器,則是一個選擇),因為數據文件不允許在本地使用,甚至不能與Web應用程序位於同一文件夾中。 “相同來源”策略表示相同的服務器-不是相同的文件夾。
當應用啟動時,JavaScript文件(或首先放在Web存儲中)將建立變形世界。 用戶與那個世界互動。 新狀態可以存儲在WebStorage中並通過下載進行處理。
您可以將Lively Kernel用作文件中的語言,或者將變形數據存儲在對象中,或者將您發現最簡單的任何形式生成為要下載的文件。
那么這有什么特別的呢? 我不會重復已接受的答案,但這是我的結論:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.