日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

KineticJS教程(6)

發布時間:2025/3/17 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KineticJS教程(6) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

KineticJS教程(6)

?6.拖拽

6.1.拖拽功能

要實現Kinetic對象的拖拽功能很簡單,只需將圖形對象的draggable屬性設為true就可以了。

<script>

// 在構造方法中的config參數設置

var shape = new Kinetic.Circle({

draggable: true;

});

?

// 用圖形對象的方法設置

shape.draggable(true);

</script>

這種拖拽功能還可以應用到組(Group)、層(Layer)和舞臺(Stage),設置方法類似。不過要注意的是,應用到組或層上時,拖拽組或層上的任一對象,整個組或層都會移動,而對于舞臺,拖拽舞臺上任何位置都能移動整個舞臺,而無需拖拽舞臺上的圖形對象。

6.2.拖拽線條

線條(Line)的拖拽功能設定與其他類型圖形類似,只是線條需要用像素檢測功能,因此需要線條所在層添加到舞臺后執行一次saveData方法,在拖拽動作結束事件處理方法中也要執行一次saveData方法。

<script>

// 在構造方法中的config中設定

var line= new Kinetic.Line({

?

draggable: true;

});

?

// 使用對象的方法設定

line.draggable(true);

?

// 保存像素數據

line.saveData();

//必須在每次拖拽完畢后執行一次saveData

line.on(“dragend”, function() {

blueLine.saveData();

});

</script>

完整代碼:

<!DOCTYPE HTML>

<html>

<head>

<meta charset=“UTF-8″>

<title>KineticJS</title>

<script src=“../kinetic.js”></script>

</head>

<body>

<script>

window.onload = function() {

var stage = new Kinetic.Stage({

container : “container”,

width : 600,

height : 400

});

?

var layer = new Kinetic.Layer();

?

var line = new Kinetic.Line({

points : [ 100, 150, 340, 230 ],

stroke : “blue”,

strokeWidth : 10,

draggable : true

});

?

layer.add(line);

stage.add(layer);

?

//保存像素數據

line.saveData();

?

//必須在每次拖拽完畢后執行一次saveData

line.on(“dragend”, function() {

blueLine.saveData();

});

};

</script>

<div id=“container”></div>

</body>

</html>

6.3.拖拽事件

有關拖拽的事件包括拖拽開始dragstart,拖拽中 dragmove,拖拽結束 dragend ,我們可以根據自己的需要綁定這幾個事件響應方法。

<script>

shape.on(“dragstart”, function(evt) {

// 響應代碼

};

shape.on(“dragmove”, function(evt) {

// 響應代碼

};

shape.on(“dragend”, function(evt) {

// 響應代碼

};

</script>

6.4.拖拽方向限制

Kinetic支持對拖拽運動限制在水平或者垂直方向上,這個功能通過對象的 dragConstraint屬性進行設置來實現。 dragConstraint屬性可以有三個選項,包括 nonehorizontalvertical,默認情況下這個屬性的值是none

<script>

// 在構造方法中的config參數中設置,拖動被限制在水平方向上

var shape = new Kinetic.Rect({

dragConstraint: “horizontal”

});

?

// 用對象的方法設置,拖動被限制在水平方向上

shape.setDragConstraint(“horizontal”);

</script>

6.5.拖拽范圍限制

Kinetic通過 dragBounds 屬性的設置可以將拖拽限制在一個矩形范圍之內。dragBounds 屬性包括toprightbottom, 和 left 四個參數,這四個參數可以只設置其中的幾個,不需要全部設置。

<script>

// 在構造方法的config參數中設置

var shape = new Kinetic.Circle({

dragBounds: {

top: 50

}

});

?

// 在對象的方法中設置

shape.setDragBounds({

top: 0,

left: 0,

right: 200,

bottom: 200

});

</script>

轉載于:https://www.cnblogs.com/zhangleblog/p/3912181.html

總結

以上是生活随笔為你收集整理的KineticJS教程(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。