牛骨文教育服务平台(让学习变的简单)
博文笔记

qml之动态创建销毁对象

创建时间:2017-04-05 投稿人: 浏览次数:1507
   本例实现创建销毁的原理是通过调用creatObj()方法来创动态创建对象,通过destroy()的函数来销毁动态创建的组件,从而防止内存泄漏。
   Component是封装好的组件,内部可以实现自己的组件,特点是内可以直接调用外部的方法,外部不可以直接调用内部的方法,相当于闭包。
    //Timer:定时器
    Timer{
        //自定义数组对象来保存动态创建的矩形
        property var rectObj: []
        //自定义bool类型来标记对象是创建还是销毁
        property bool creatOrdestroy: false
        //定时器运行时间属性单位毫秒
        interval: 500
        //开始就触发定时器
        running: true
        //不断重复
        repeat: true
        //定时器触发时来执行脚本
        onTriggered: {
            creatOrdestroy = !creatOrdestroy;
            if(creatOrdestroy){
              for(var i = 0; i < 3000; i++){
                rectObj.push(creatObj());
              }
            }
            else{
                for(var i = 0; i < 3000; i++){
                    rectObj.pop().destroy();
                }
            }
        }
    }
    function creatObj(){
        var obj = creat.createObject(window,{
                                     });
        return obj;
    }
    Component{
        id:creat
        Rectangle{
            id:test
            x:Math.random()*700
            y:Math.random()*700
            height:20
            width:20
            color:"#33ff11"
        }
    } 

运行结果:(不断创建并销毁!)
这里写图片描述
内存大小:(在一定范围内波动)
这里写图片描述

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。