zoukankan      html  css  js  c++  java
  • LayaBox怎么在ui页面中取到某个元素对象节点

    class GamView extends ui.gameUI{
        private mole:Array<Mole>;
        private number:number = 9;   //定义鼠洞的个数
        private score:number;  //定义初始化分数
        private moleShowTime:number = 600; //声明老鼠出现速度(与时间关联,时间越少速度越快)
        constructor(){
        super();
        this.mole = new Array<Mole>();   //注意,数组声明还不能直接使用,要先new一下,而且不要再循环里面new,不然会一直出现第一个
        this.timeBar.value = 1;   //初始化时间进度条为1,即为满格
        this.score = 0;    //初始化分数为0
       // this.scorenumber.dataSource = {item6:{index:3}};
    
        //这里需要建立一个分数的处理,来和后台的受击打hit方法来进行数据交互
        //Handler处理器的参数说明:第一个this表示当前的作用域,是当前累;第二个参数,this.setScore表示回调后执行当前类的setScore方法
        //第三个表示参数数组,这里不需要,所以是null;第四个参数false表示不是只调用一次,因为每次击打都要调用这个处理器。默认是once,只执行一次
        var hitCallBack:Laya.Handler = Laya.Handler.create(this,this.setScore,null,false);
    
        //this.mole = new Mole(this.normal,this.hit,131);
       // this.mole.Show();
       for(var i:number=0;i<this.number;i++){
           var box:Laya.Box = this.getChildByName("item"+i) as Laya.Box;  //注意,这里的node是不是一个box类型,所以要用as转成box类型
           var moleObj:Mole = new Mole(box.getChildByName("normal") as Laya.Image,box.getChildByName("hit") as Laya.Image,box.getChildByName("scoreImg") as Laya.Image,123,hitCallBack);//这里也要用as转成image类型
           this.mole.push(moleObj);//把对象push放到array容器里面
       }
        }
    }

    在这里例子中,我们先要新建一个Gamview类来继承页面的ui类ui.gameUI,不能直接对页面ui.gameUI类进行操作。然后我们重点看里面的那个for循环

    这里就有涉及到元素节点的获取,这里用的是getChildByName()方法获得节点(注意:类型不一致的要用as来做类型转换,如上代码),还可以通过一下的方法获得元素节点:

  • 相关阅读:
    作业5,6 2019/10/23
    作业1、2、3、4 2019/10/23
    实现Map传参Mybatis
    maven工程配置pom.xml实现mybatis的访问数据库操作
    测试
    Postman篇之命令行测试
    unittest框架
    测试
    测试
    测试
  • 原文地址:https://www.cnblogs.com/Alisa-Davillver/p/6165188.html
Copyright © 2011-2022 走看看