I would use assets.loadFromUrl instead:
https://api.playcanvas.com/classes/Engine.AssetRegistry.html#loadFromUrl
Eg
// initialize code called once per entity
LoadUrlTextures.prototype.loadOnButton = function()
{
var self = this;
var asset = this.app.assets.loadFromUrl(this.textureUrl, 'texture', function (error, asset) {
if (error) {
console.log(error);
return;
}
var element = self.entity.element;
element.texture = asset.resource;
});
};