Crafty.removeAssets()

public void Crafty.removeAssets(Object assets)
data

JSON对象 (或者 JSON 字符串), 想要移除的资源(可以使音频,图片和精灵)

删除资源(音频,图片,精灵 - 和精灵组件相关的),为了使浏览器释放内存。

接收一个要删除的资源属性集的JSON对象(或JSON字符串),包含 'audio', 'images' 和/或 'sprites'。遵从 Crafty.load ‘data’ 参数相同的格式。如果你传递Crafty.load调用时传递的对象,所有通过这种方式加载的资源都会被删除。 对于精灵,如果你想保持一些特定的组件,只需要不传递组件在精灵地图里的组件名称就可以了。

注意,为了移除关联到精灵组件的精灵,你需要传递精灵的 'map' 属性,虽然拥有的属性不会被移除,但忽略它们(sprite组件的属性)会导致一个错误(因为'map'是一个对象,因此它的属性不能忽略 - 但可以是 null 或者 undefined)。只要'map'对象的属性有任何值它都可以工作。如果你将 'map' 定义成一个数组,如: "map": [ "car", "truck" ] 而不是 "map": { "car": [0,0], "truck": [0,1] }. 下边是一个例子("animals.png" VS. "vehicles.png" sprites).

例子

var assetsToRemoveObj = {
    "audio": {
        "beep": ["beep.wav", "beep.mp3", "beep.ogg"],
        "boop": "boop.wav"
    },
    "images": ["badguy.bmp", "goodguy.png"],
    "sprites": {
        "animals.png": {
            "map": { "ladybug": [0,0], "lazycat": [0,1] },
        },
        "vehicles.png": {
            "map": [ "car", "truck" ]
        }
    }
}

Crafty.removeAssets(assetsToRemoveObj);