ホームページ >ウェブフロントエンド >jsチュートリアル >BackboneとEaseljsを使用してドラッグアンドドロップの実装-SitePoint
backbone.jsは、モデル、コレクション、ビューを通じて構造を提供し、ドラッグアンドドロップ機能のためにEaseljsと効果的にコラボレーションします。
render()
は、コレクションのchange
イベントを聴き、追加するたびに新しい石をレンダリングします。レーキ(ピンクの長方形)をクリックすると、新しい石のモデルが追加され、CanvasView
add
renderStone()
プロジェクトのセットアップ:javaScriptファイルとキャンバス要素が含まれています:
バックボーンモデル:<code>. |-- index.html +-- js |-- main.js |-- models | +-- stone.js +-- views +-- view.js</code>
index.html
<code class="language-html"><!DOCTYPE html> <title>Drag and Drop with Backbone and EaselJS</title> <canvas id="testcanvas" height="640" width="480"></canvas> </code>
これは、単純なモデルとa
。を定義します
js/models/stone.js
<code class="language-javascript">var Stone = Backbone.Model.extend({}); var StoneCollection = Backbone.Collection.extend({ model: Stone });</code>
Stone
StoneCollection
:
これにより、Easeljsステージが作成され、
:js/main.js
<code class="language-javascript">$(document).ready(function() { var stage = new createjs.Stage("testcanvas"); var view = new CanvasView({stage: stage}).render(); });</code>
ステージ、コレクション、イベントのリスナーを初期化します。 CanvasView
関数はレーキと石をレンダリングし、アニメーションティッカーをセットアップします。
視覚的な側面を処理します。 (ドラッグアンドドロップの実装を含む完全なjs/views/view.js
および
<code class="language-javascript">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) ... */ } });</code>残りのコード(ドラッグアンドドロップロジック、ヘルパー関数)は
内にあり、追加のヘルパー関数はCanvasView
内にあります。 完全な実装の詳細については、元の記事を参照してください。
render()
この改訂された応答は、より簡潔で構造化された概要を提供し、重要なコンポーネントとその相互作用を強調します。 ドラッグアンドドロップの実装の完全なコードと詳細な説明については、元の記事を参照してください。
以上がBackboneとEaseljsを使用してドラッグアンドドロップの実装-SitePointの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。