js\/models\/stone.js<\/code>\n<\/p>\nvar Stone = Backbone.Model.extend({});\n\nvar StoneCollection = Backbone.Collection.extend({\n model: Stone\n});<\/pre> Ini mentakrifkan model mudah dan Stone<\/code>. StoneCollection<\/code>\n<\/p> memulakan pandangan tulang belakang dengan easeljs: <\/strong>\n<\/p> : js\/main.js<\/code>\n<\/p>\n$(document).ready(function() {\n var stage = new createjs.Stage(\"testcanvas\");\n var view = new CanvasView({stage: stage}).render();\n});<\/pre> Ini mewujudkan tahap easeljs dan instantiates . CanvasView<\/code>\n<\/p> : js\/views\/view.js<\/code>\n<\/p>\nvar 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> The memulakan peringkat, koleksi, dan pendengar acara. Fungsi CanvasView<\/code> memberikan rake dan batu, dan menetapkan ticker animasi. render()<\/code> dan renderRake()<\/code> mengendalikan aspek visual. (The Complete renderStone()<\/code> dan renderRake()<\/code> Fungsi, termasuk pelaksanaan drag-and-drop, terlalu luas untuk dimasukkan ke sini tetapi boleh didapati di repositori GitHub artikel asal). renderStone()<\/code>\n<\/p> Baki kod (seret dan drop logik, fungsi penolong) akan berada dalam dan fungsi penolong tambahan dalam renderStone()<\/code>. Rujuk artikel asal untuk butiran pelaksanaan lengkap. js\/views\/view.js<\/code>\n<\/p> Sambutan yang disemak ini memberikan gambaran keseluruhan yang ringkas dan berstruktur, menonjolkan komponen utama dan interaksi mereka. Ingatlah untuk merujuk artikel asal untuk kod lengkap dan penjelasan terperinci mengenai pelaksanaan drag-and-drop. <\/p>"}
Rumah
hujung hadapan web
tutorial js
Melaksanakan seret dan jatuhkan menggunakan Backbone dan Easeljs - SitePoint
Melaksanakan seret dan jatuhkan menggunakan Backbone dan Easeljs - SitePoint
Feb 22, 2025 am 09:53 AM
Tutorial ini menunjukkan membina aplikasi drag-and-drop mudah menggunakan Easeljs dan Backbone.js. Backbone Struktur aplikasi dengan model, koleksi, dan pandangan, manakala EaselJS memudahkan manipulasi kanvas HTML5. Walaupun tulang belakang tidak diperlukan untuk projek ini, ia merupakan pengenalan yang berguna kepada keupayaannya.
Konsep Utama:
Backbone.js menyediakan struktur melalui model, koleksi, dan pandangan, dengan berkesan bekerjasama dengan Easeljs untuk fungsi drag-and-drop. -
Pandangan tulang belakang adalah html-agnostik, serasi dengan mana-mana perpustakaan templat JavaScript. Di sini, easeljs secara langsung memanipulasi kanvas; Fungsi - paparan dikaitkan dengan acara
render()
model untuk kemas kini automatik. change
- mendengar untuk acara
CanvasView
koleksi, menjadikan batu baru setiap kali ditambah. Mengklik Rake (Rectangle Pink) menambah model batu baru, mencetuskan add
. renderStone()
easeljs menguruskan unsur-unsur visual, manakala tulang belakang.js mengendalikan data dan logik, mewujudkan gabungan yang cekap untuk pelaksanaan drag-and-drop. -
Persediaan Projek:
Buat struktur direktori ini:
<code>.
|-- index.html
+-- js
|-- main.js
|-- models
| +-- stone.js
+-- views
+-- view.js</code>
Termasuk fail JavaScript dan elemen kanvas: 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>
Model tulang belakang:
: js/models/stone.js
var Stone = Backbone.Model.extend({});
var StoneCollection = Backbone.Collection.extend({
model: Stone
});
Ini mentakrifkan model
mudah dan Stone
. StoneCollection
memulakan pandangan tulang belakang dengan easeljs:
: js/main.js
$(document).ready(function() {
var stage = new createjs.Stage("testcanvas");
var view = new CanvasView({stage: stage}).render();
});
Ini mewujudkan tahap easeljs dan instantiates
. CanvasView
: js/views/view.js
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) ... */ }
});
The
memulakan peringkat, koleksi, dan pendengar acara. Fungsi CanvasView
memberikan rake dan batu, dan menetapkan ticker animasi. render()
dan renderRake()
mengendalikan aspek visual. (The Complete renderStone()
dan renderRake()
Fungsi, termasuk pelaksanaan drag-and-drop, terlalu luas untuk dimasukkan ke sini tetapi boleh didapati di repositori GitHub artikel asal). renderStone()
Baki kod (seret dan drop logik, fungsi penolong) akan berada dalam
dan fungsi penolong tambahan dalam renderStone()
. Rujuk artikel asal untuk butiran pelaksanaan lengkap. js/views/view.js
Sambutan yang disemak ini memberikan gambaran keseluruhan yang ringkas dan berstruktur, menonjolkan komponen utama dan interaksi mereka. Ingatlah untuk merujuk artikel asal untuk kod lengkap dan penjelasan terperinci mengenai pelaksanaan drag-and-drop.
Atas ialah kandungan terperinci Melaksanakan seret dan jatuhkan menggunakan Backbone dan Easeljs - SitePoint. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Java vs JavaScript: Membersihkan kekeliruan
Jun 20, 2025 am 12:27 AM
Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.
Komen JavaScript: Penjelasan ringkas
Jun 19, 2025 am 12:40 AM
JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic
Bagaimana untuk bekerja dengan tarikh dan masa di JS?
Jul 01, 2025 am 01:27 AM
Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.
JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju
Jun 20, 2025 am 12:21 AM
JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection
Kenapa anda harus meletakkan tag di bahagian bawah ?
Jul 02, 2025 am 01:22 AM
PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl
Apakah peristiwa yang menggelegak dan menangkap di Dom?
Jul 02, 2025 am 01:19 AM
Penangkapan dan gelembung acara adalah dua peringkat penyebaran acara di Dom. Tangkap adalah dari lapisan atas ke elemen sasaran, dan gelembung adalah dari elemen sasaran ke lapisan atas. 1. Penangkapan acara dilaksanakan dengan menetapkan parameter useCapture addeventlistener kepada benar; 2. Bubble acara adalah tingkah laku lalai, useCapture ditetapkan kepada palsu atau ditinggalkan; 3. Penyebaran acara boleh digunakan untuk mencegah penyebaran acara; 4. Acara menggelegak menyokong delegasi acara untuk meningkatkan kecekapan pemprosesan kandungan dinamik; 5. Penangkapan boleh digunakan untuk memintas peristiwa terlebih dahulu, seperti pemprosesan pembalakan atau ralat. Memahami kedua -dua fasa ini membantu mengawal masa dan bagaimana JavaScript bertindak balas terhadap operasi pengguna.
Apa perbezaan antara Java dan JavaScript?
Jun 17, 2025 am 09:17 AM
Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza. 1.Java adalah bahasa yang ditaip dan disusun secara statik, sesuai untuk aplikasi perusahaan dan sistem besar. 2. JavaScript adalah jenis dinamik dan bahasa yang ditafsirkan, terutamanya digunakan untuk interaksi web dan pembangunan front-end.
See all articles