2009-08-17 3 views

ответ

7

Я просто написал свой первый сценарий Photoshop JSX с этим поводом :)

Я использую Photoshop CS3, но я предполагаю, изменение текста - это основная функция, которая не может легко меняться из одной версии в другую;

Вот мой сниппет:

//get the active document 
var doc = app.activeDocument; 
//get the active layer 
var al = doc.activeLayer; 
if(al.kind == LayerKind.TEXT) { 
    //get the textItem 
    var ti = al.textItem; 
    //change contents 
    ti.contents = "stackoverflow"; 
} 

Я не уверен, если я получил именно то, что вы имеете в виду, изменив содержимое от имени слоя, , но вот мой идти на него:

function changeTextByLayerName(layerName,newText){ 
    var layer = doc.layers.getByName(layerName); 
    if(layer.kind == LayerKind.TEXT) layer.textItem.contents = newText; 
} 

К счастью, существует метод getByName, поэтому не требуется ручной цикл, а затем я просто проверяю, действительно ли этот слой является текстовым слоем.

Надеюсь, это поможет.

+0

Отлично willc2

+2

~ (_8^(|) спасибо! :) –

+0

Не могу вас поблагодарить. Это ДЕЙСТВИТЕЛЬНО помогло мне понять, как скрипты работают с ExtendScript. Ты мужчина Джордж! – HoldTheLine