本例实现创建销毁的原理是通过调用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"
}
}
运行结果:(不断创建并销毁!)
内存大小:(在一定范围内波动)