zoukankan      html  css  js  c++  java
  • KineticJS教程(11)

    KineticJS教程(11)

     11.对象的上下关系

    11.1.层的上下关系

    Kinetic的层是按照添加到舞台的次序,由下向上排列,上层遮盖下层的图形。每个层各自有一个ZIndex编号来表示在层级中的上下位置,编号从0开始,表示最底层,向上层依次增1。

    Kinetic提供了几个方法用于调整层的上下层位置,包括:

    <script>

    //移动到最上层

    layer.moveToTop();

    //移动到最下层

    layer.moveToBottom();

    //向上移动一层

    layer.moveUp();

    //向下移动一层

    layer.moveDown();

    //设定层的ZIndex

    layer.setZIndex(5);

    </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 layer1 = new Kinetic.Layer();

    var layer2 = new Kinetic.Layer();

    var layer3 = new Kinetic.Layer();

     

    var config1 = {

    x : 200,

    y : 200,

    radius : 100,

    height : 100,

    fill : “red”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle1 = new Kinetic.Circle(config1);

     

    var config2 = {

    x : 250,

    y : 200,

    radius : 100,

    height : 100,

    fill : “green”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle2 = new Kinetic.Circle(config2);

     

    var config3 = {

    x : 300,

    y : 200,

    radius : 100,

    height : 100,

    fill : “blue”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle3 = new Kinetic.Circle(config3);

     

    layer1.add(circle1);

    layer2.add(circle2);

    layer3.add(circle3);

     

    layer1.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本层移动至最上层

    this.moveToTop();

    alert(“to Z index:” + this.getZIndex());

    });

    layer2.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本层移动至最上层

    this.moveToTop();

    alert(“to Z index:” + this.getZIndex());

     

    });

    layer3.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本层移动至最上层

    this.moveToTop();

    alert(“to Z index:” + this.getZIndex());

    });

    //将层添加到舞台中

    stage.add(layer1);

    stage.add(layer2);

    stage.add(layer3);

    };

    </script>

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

    </body>

    </html>

    11.2.图形对象的上下关系

    在某一层中的各图形对象也有类似于层之间的上下层叠关系,由下向上排列,上层图形对象遮盖下层的图形对象。每个图形对象各自有一个ZIndex编号来表示在层级中的上下位置,编号从0开始,表示最底层,向上层依次增1。

    Kinetic提供了几个方法用于调整图形对象的上下层位置,包括:

    <script>

    //移动到最上层

    shape.moveToTop();

    //移动到最下层

    shape.moveToBottom();

    //向上移动一层

    shape.moveUp();

    //向下移动一层

    shape.moveDown();

    //设定层的ZIndex

    shape.setZIndex(5);

    </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 config1 = {

    x : 200,

    y : 200,

    radius : 100,

    height : 100,

    fill : “red”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle1 = new Kinetic.Circle(config1);

     

    circle1.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本对象移动到本层所有对象中的最上面

    this.moveToTop();

    //重绘对象所在本层

    layer.draw();

    alert(“to Z index:” + this.getZIndex());

    });

     

    var config2 = {

    x : 250,

    y : 200,

    radius : 100,

    height : 100,

    fill : “green”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle2 = new Kinetic.Circle(config2);

    circle2.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本对象移动到本层所有对象中的最上面

    this.moveToTop();

    //重绘对象所在本层

    layer.draw();

    alert(“to Z index:” + this.getZIndex());

     

    });

     

    var config3 = {

    x : 300,

    y : 200,

    radius : 100,

    height : 100,

    fill : “blue”,

    stroke : “black”,

    strokeWidth : 4

    };

    var circle3 = new Kinetic.Circle(config3);

    circle3.on(“click”, function() {

    alert(“from Z index:” + this.getZIndex());

    //将本对象移动到本层所有对象中的最上面

    this.moveToTop();

    //重绘对象所在本层

    layer.draw();

    alert(“to Z index:” + this.getZIndex());

    });

     

    layer.add(circle1);

    layer.add(circle2);

    layer.add(circle3);

    //将层添加到舞台中

    stage.add(layer);

    };

    </script>

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

    </body>

    </html>

  • 相关阅读:
    HDU 4970 Killing Monsters(树状数组)
    HDU 1541 Stars(树状数组)
    HDU 1541 Stars(树状数组)
    POJ 1990 MooFest(树状数组)
    POJ 1990 MooFest(树状数组)
    关于论坛数据库的设计(分表分库等-转)
    struts2零配置參考演示样例
    [ATL/WTL]_[中级]_[保存CBitmap到文件-保存屏幕内容到文件]
    转【翻译】怎样在Ubuntu 12.04上配置Apache SSL证书
    《简单的飞机大战》事实上不简单(1)
  • 原文地址:https://www.cnblogs.com/zhangleblog/p/3912198.html
Copyright © 2011-2022 走看看