如何获取对象的属性和方法,可以通过反射接口
比如:获取layer对象的属性和方法:
function reflectProps(obj) {
var props = obj.reflect.properties;
for (var i = 0, len = props.length; i < len; i++) {
try {
$.writeln(props[i].name + ' = ' + obj[props[i].name]);
WriteData(props[i].name + ' = ' + obj[props[i].name])
} catch (e) {}
}
}
function reflectMeths(obj) {
var meths = obj.reflect.methods;
for (var i = 0, len = meths.length; i < len; i++) {
try {
$.writeln(meths[i].name + '();');
WriteData(meths[i].name + '();')
} catch (e) {}
}
}
function WriteData(Txt)
{
var file = new File(Folder.desktop + "/rflection.txt");
file.open("a", "TEXT",null);
file.encoding = "UTF8";
file.seek(0,2);
$.os.search(/windows/i) != -1 ? file.lineFeed = 'windows' : file.lineFeed = 'macintosh';
file.writeln(Txt);
file.close();
}
// Example of use:
// var r = new ActionReference();
// var d = new ActionDescriptor();
// r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
// d.putReference(charIDToTypeID('null'), r);
// var options = executeAction(charIDToTypeID( "getd" ), d, DialogModes.NO);
//app.activeDocument.activeLayer
var lay =app.activeDocument.activeLayer
WriteData("\n***************"+"["+lay.constructor.name+" ]"+" properties **********************\n")
reflectProps(lay);
WriteData("\n***************"+"["+lay.constructor.name+" ]"+" methods **********************\n")
reflectMeths(lay);
***************[ArtLayer ] properties **********************
fillOpacity = 100
grouped = false
isBackgroundLayer = true
pixelsLocked = false
positionLocked = true
transparentPixelsLocked = true
kind = LayerKind.NORMAL
typename = ArtLayer
name = 背景
allLocked = false
blendMode = BlendMode.NORMAL
linkedLayers =
opacity = 100
visible = true
id = 1
itemIndex = 1
bounds = 0 px,0 px,800 px,600 px
boundsNoEffects = 0 px,0 px,800 px,600 px
xmpMetadata = [XMP Metadata]
parent = [Document 未标题-1]
__proto__ = [object Object]
***************[ArtLayer ] methods **********************
applyStyle();
applyStyleFile();
saveStyleFile();
clear();
copy();
cut();
merge();
rasterize();
applyAverage();
applyGaussianBlur();
applyLensBlur();
applyBlur();
applyBlurMore();
applyMotionBlur();
applyRadialBlur();
applySmartBlur();
applyDiffuseGlow();
applyDisplace();
applyGlassEffect();
applyOceanRipple();
applyPinch();
applyPolarCoordinates();
applyRipple();
applyShear();
applySpherize();
applyTwirl();
applyWave();
applyZigZag();
applyAddNoise();
applyDespeckle();
applyDustAndScratches();
applyMedianNoise();
applyClouds();
applyDifferenceClouds();
applyLensFlare();
applyTextureFill();
applySharpen();
applySharpenEdges();
applySharpenMore();
applyUnSharpMask();
applyDeInterlace();
applyNTSC();
applyCustomFilter();
applyHighPass();
applyMaximum();
applyMinimum();
applyOffset();
adjustLevels();
autoLevels();
autoContrast();
adjustCurves();
adjustBrightnessContrast();
adjustColorBalance();
desaturate();
selectiveColor();
mixChannels();
invert();
equalize();
threshold();
posterize();
photoFilter();
shadowHighlight();
unlink();
link();
translate();
rotate();
resize();
duplicate();
move();
remove();