2016-01-31 3 views
1

Я использую Gojs 1.5.2. Я загружаю изображения на моем холсте с S3. ведро имеет CORS.Set sourceCrossOrigin для всех изображений

Когда я использую Diagram.makeImageData(), я получаю белые пробелы вместо своих изображений. Здесь объясняется - makeImageData

Решение должно использовать sourceCrossOrigin анонимно, что похоже на работу.

Есть ли способ определить sourceCrossOrigin для всех моих классов Picture в одном месте вместо каждого из них?

ответ

0

Многие примеры используют функции, называемые такими вещами, как textStyle(), чтобы убедиться, что в TextBlocks все установлены согласованные свойства. Для примера см. Код в OrgChartEditor.

// This function provides a common style for most of the TextBlocks. 
// Some of these values may be overridden in a particular TextBlock. 
function textStyle() { 
    return { font: "9pt Segoe UI,sans-serif", stroke: "white" }; 
} 

Затем использовать его как это:

... 
$(go.TextBlock, textStyle(), 
    { row: 2, column: 0 }, 
    new go.Binding("text", "key", function(v) {return "ID: " + v;})), 
$(go.TextBlock, textStyle(), 
    { row: 2, column: 3, }, 
    new go.Binding("text", "parent", function(v) {return "Boss: " + v;})), 
$(go.TextBlock, textStyle(), // the comments 
    { 
... 

В качестве альтернативы, вы можете переопределить изображение. Вот пример:

function CustomPicture() { 
    go.Picture.call(this); 
    this.sourceCrossOrigin = function() { return 'anonymous' }; 
} 
go.Diagram.inherit(CustomPicture, go.Picture); 

$(CustomPicture,... Затем используйте везде вместо $(go.Picture,...