js\/models\/stone.js<\/code>。<\/p>。\n用easeljs初始化骨干視圖:var Stone = Backbone.Model.extend({});\n\nvar StoneCollection = Backbone.Collection.extend({\n model: Stone\n});<\/pre>Stone<\/code>StoneCollection<\/code><\/p>\n<\/strong>:<\/p>\n\njs\/main.js<\/code>這會創(chuàng)建一個easeljs階段并實例化<\/p>$(document).ready(function() {\n var stage = new createjs.Stage(\"testcanvas\");\n var view = new CanvasView({stage: stage}).render();\n});<\/pre>。\nCanvasView<\/code>:<\/p>\n\njs\/views\/view.js<\/code><>>初始化舞臺,收集和事件聽眾。 <\/p>>功能呈現(xiàn)耙子和石頭,并設置動畫股票。 var CanvasView = Backbone.View.extend({\n initialize: function(args) {\n this.stage = args.stage;\n this.stage.enableMouseOver(20);\n this.collection = new StoneCollection();\n this.rakeOffsets = { \/* ... (rake dimensions) ... *\/ };\n this.listenTo(this.collection, \"add\", this.renderStone, this);\n this.listenTo(this.collection, \"remove\", this.renderRake, this);\n this.listenTo(this.collection, \"reset\", this.renderRake, this);\n },\n render: function() {\n this.renderRake();\n this.stage.update();\n createjs.Ticker.addEventListener(\"tick\", this.stage);\n createjs.Ticker.setInterval(25);\n createjs.Ticker.setFPS(60);\n },\n renderRake: function() { \/* ... (rake rendering and click handler) ... *\/ },\n renderStone: function(model) { \/* ... (stone rendering and drag-and-drop logic) ... *\/ }\n});<\/pre>>和處理視覺方面。 (完整的CanvasView<\/code>和render()<\/code>>函數(shù),包括拖放實現(xiàn),太廣泛了,以至于在此處包括,但在原始文章的GitHub存儲庫中可用)。renderRake()<\/code>>\nrenderStone()<\/code>剩余代碼(拖放邏輯,輔助功能)將在renderRake()<\/code>>內部和renderStone()<\/code>內的其他輔助功能。 有關完整的實施詳細信息,請參閱原始文章。<\/p>\n這種修訂后的響應提供了更簡潔,更結構化的概述,突出了關鍵組件及其相互作用。 請記住,請咨詢原始文章以獲取完整的代碼和拖放實現(xiàn)的詳細說明。renderStone()<\/code>><\/p><\/ante><\/anconbone.js>"}
首頁
web前端
js教程
使用骨干和easeljs實施拖放-SitePoint
使用骨干和easeljs實施拖放-SitePoint
Feb 22, 2025 am 09:53 AM
本教程演示了使用easeljs和backbone.js構建一個簡單的拖放應用程序。 主干通過模型,集合和視圖結構該應用程序,而Easeljs簡化了HTML5帆布操作。盡管該項目并不是嚴格必要的骨干,但它是對其功能的有用介紹。
密鑰概念:
>
骨干視圖是html-agnostic,與任何JavaScript模板庫兼容。在這里,Easeljs直接操縱畫布。視圖的函數(shù)鏈接到自動更新的模型的事件。>
render()
> change
聽集合的事件,每次添加一塊新石頭。單擊耙子(粉紅色矩形)添加了新的石材型號,觸發(fā)
CanvasView
。
Easeljs管理視覺元素,而backbone.js處理數(shù)據(jù)和邏輯,為拖放實現(xiàn)創(chuàng)建了有效的組合。add
>
renderStone()
項目設置:
創(chuàng)建此目錄結構:
包括JavaScript文件和一個帆布元素:>
<code>.
|-- index.html
+-- js
|-- main.js
|-- models
| +-- stone.js
+-- views
+-- view.js</code>
骨干模型:index.html
<!DOCTYPE html>
<html>
<head>
<title>Drag and Drop with Backbone and EaselJS</title>
</head>
<body>
<canvas id="testcanvas" height="640" width="480"></canvas>
<??>
<??>
<??>
<??>
<??>
<??>
<??>
<??>
</body>
</html>
:
這定義了一個簡單的模型和ajs/models/stone.js
。
。
用easeljs初始化骨干視圖:var Stone = Backbone.Model.extend({});
var StoneCollection = Backbone.Collection.extend({
model: Stone
});
Stone
StoneCollection
:
js/main.js
這會創(chuàng)建一個easeljs階段并實例化
$(document).ready(function() {
var stage = new createjs.Stage("testcanvas");
var view = new CanvasView({stage: stage}).render();
});
。
CanvasView
:
js/views/view.js
<>>初始化舞臺,收集和事件聽眾。
>功能呈現(xiàn)耙子和石頭,并設置動畫股票。 var CanvasView = Backbone.View.extend({
initialize: function(args) {
this.stage = args.stage;
this.stage.enableMouseOver(20);
this.collection = new StoneCollection();
this.rakeOffsets = { /* ... (rake dimensions) ... */ };
this.listenTo(this.collection, "add", this.renderStone, this);
this.listenTo(this.collection, "remove", this.renderRake, this);
this.listenTo(this.collection, "reset", this.renderRake, this);
},
render: function() {
this.renderRake();
this.stage.update();
createjs.Ticker.addEventListener("tick", this.stage);
createjs.Ticker.setInterval(25);
createjs.Ticker.setFPS(60);
},
renderRake: function() { /* ... (rake rendering and click handler) ... */ },
renderStone: function(model) { /* ... (stone rendering and drag-and-drop logic) ... */ }
});
>和處理視覺方面。 (完整的CanvasView
和render()
>函數(shù),包括拖放實現(xiàn),太廣泛了,以至于在此處包括,但在原始文章的GitHub存儲庫中可用)。renderRake()
>
renderStone()
剩余代碼(拖放邏輯,輔助功能)將在renderRake()
>內部和renderStone()
內的其他輔助功能。 有關完整的實施詳細信息,請參閱原始文章。
這種修訂后的響應提供了更簡潔,更結構化的概述,突出了關鍵組件及其相互作用。 請記住,請咨詢原始文章以獲取完整的代碼和拖放實現(xiàn)的詳細說明。renderStone()
>
以上是使用骨干和easeljs實施拖放-SitePoint的詳細內容。更多信息請關注PHP中文網其他相關文章!
本站聲明
本文內容由網友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn
Java vs. JavaScript:清除混亂
Jun 20, 2025 am 12:27 AM
Java和JavaScript是不同的編程語言,各自適用于不同的應用場景。Java用于大型企業(yè)和移動應用開發(fā),而JavaScript主要用于網頁開發(fā)。
JavaScript評論:簡短說明
Jun 19, 2025 am 12:40 AM
JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)
如何在JS中與日期和時間合作?
Jul 01, 2025 am 01:27 AM
JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。
JavaScript與Java:開發(fā)人員的全面比較
Jun 20, 2025 am 12:21 AM
JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)
為什么要將標簽放在的底部?
Jul 02, 2025 am 01:22 AM
PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl
JavaScript:探索用于高效編碼的數(shù)據(jù)類型
Jun 20, 2025 am 12:46 AM
javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)
什么是在DOM中冒泡和捕獲的事件?
Jul 02, 2025 am 01:19 AM
事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標元素,冒泡是從目標元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設為true實現(xiàn);2.事件冒泡是默認行為,useCapture設為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動態(tài)內容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯誤處理。了解這兩個階段有助于精確控制JavaScript響應用戶操作的時機和方式。
Java和JavaScript有什么區(qū)別?
Jun 17, 2025 am 09:17 AM
Java和JavaScript是不同的編程語言。1.Java是靜態(tài)類型、編譯型語言,適用于企業(yè)應用和大型系統(tǒng)。2.JavaScript是動態(tài)類型、解釋型語言,主要用于網頁交互和前端開發(fā)。
See all articles