2014-11-24 4 views
0

Я пытаюсь написать сценарий, который обновит значение текстового слоя в Photoshop.Невозможно установить значение textItem.contents

У меня есть слой, хранящийся в переменной myLayer, который, когда я захожу так, я знаю, что это ArtLayer с типом LayerKind.TEXT и имеет textItem объект, связанный, который имеет значение строки на месте. Все, как я ожидал.

В документации указано, что textItem.contents - это чтение-запись, поэтому я думал, что myLayer.textItem.contents = "Hello World" должен обновить значение, но когда я попробую это, я получаю General Photoshop Error occurred. This functionality might not be available in this version of Photoshop.

Может ли кто-нибудь посоветовать то, что мне не хватает?

Я использую Photoshop CC 2014 и CC 2014 Javascript Reference

Thankyou заранее для вас помощь :)

ответ

1

Его трудно увидеть, что происходит не так, когда нет ни одного примера кода. Это работает для меня.

Испытано в PS CC 2014 Mac OSX

// needs a Photoshop document with only one textlayer 
var d = app.activeDocument; 
var l = d.artLayers[0]; 
if(l.hasOwnProperty ("textItem")){ 
    $.writeln("yes"); 
    l.textItem.contents = "Hello World"; 
} 
+0

Это выглядит именно то, что я делает. То, как я получаю свой целевой слой, - это немного круглые дома, поэтому, возможно, я нацелен на неправильный элемент. Я не собираюсь снова смотреть на это несколько дней, но буду отчитываться, когда я его взломаю. ура – popClingwrap

0

Это работает в CS2: (Предполагается, что активный слой (mylayer) представляет собой текстовый слой)

var srcDoc = app.activeDocument; 
var myLayer= srcDoc.activeLayer; 

var text = myLayer.textItem.contents; 
myLayer.textItem.contents = "Hello World";