2017-01-18 6 views
1

Короче говоря, в другой части программы я делаю холсты, конвертирую их в DataURL, а затем передаю их следующей части, чтобы использовать в качестве изображения значков кнопок. Всякий раз, когда я поставил this.icon = «/path/to/image.jpg», она тянет его правильно, но так как эти изображения не на диске, я не уверен, какExtJS Как установить значок кнопки для изображения в памяти (а не на диске)?

arrowHandler: function (arrow) { 
    var list = []; 
    var library = Ext.getCmp("library"); 
    var buttons = Ext.getCmp("numbered").menu.buttons; //where the dataURLs are pushed in another portion of the program 
    function btn(num) { 
     var image = new Image; 
     image.src = buttons[num].dataURL; 
     this.xtype = "button"; 
     this.height = 50; 
     this.width = 50; 
     this.icon = image; //where putting an actual path works correctly, but this code doesn't 
     this.num = num; 
     this.handler = function (btn) { 
      btn.up("button").menu.Style = this.num; 
      btn.up("button").fireEvent("selected", this.num); 
     }; 
    } 
    for (var i = 0; i <= 0; i++) 
     library.items.items.push(new btn(i)); 
}, 

Я знаю, петля только проходящий через индекс 0 - это как это целенаправленно для тестирования.

РЕШЕНИЕ

Выбранный правильный ответ сделал обеспечить правильный путь, чтобы установить значок с DataURI, но это было не исправление к моему вопросу. Оказывается, вместо того, чтобы делать

library.items.items.push(new btn(i)); 

мне нужно делать

library.add(new btn(i)); 

Ошибка я продолжал сталкиваться с толкая был «c.render() не является функцией». Я упоминаю, что только для того, чтобы надежно найти кого-либо, кто сталкивается с этой ошибкой.

ответ

2

Должно быть то же, что и данные uri, вам придется преобразовать его первым.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL

данные varURL = canvas.toDataURL();

Вот кнопка скрипка: https://fiddle.sencha.com/#view/editor&fiddle/1og6

+0

Хорошо, что в основном то, что моя оригинальная первая попытка была. Когда я делаю это, я получаю «TypeError: c.render() не является функцией» (конечно, в мини-выходе) - не уверен, что вызывает это, но подумал, что вы можете подумать. –

+0

Можете ли вы отправить мне пример холста? Я постараюсь это поиграть. –

 Смежные вопросы

  • Нет связанных вопросов^_^