/**********************************************************
ADOBE SYSTEMS INCORPORATED
Copyright 2005-2010 Adobe Systems Incorporated
All Rights Reserved
NOTICE: Adobe permits you to use, modify, and
distribute this file in accordance with the terms
of the Adobe license agreement accompanying it.
If you have received this file from a source
other than Adobe, then your use, modification,
or distribution of it requires the prior
written permission of Adobe.
*********************************************************/
/**********************************************************
MakeLinearGradient.jsx
DESCRIPTION
This Sample creates a linear gradient and adds it to the Swatches
palette then applies it to all path item objects in the document.
It shows the use of the PathItems and GradientStops collections,
RGBColor, Gradient and GradientStop objects.
このサンプルでは、線形グラデーションを作成し、スウォッチパレットに追加します。
パレットに追加し、ドキュメント内のすべてのパスアイテムオブジェクトに適用します。
PathItemsとGradientStopsコレクションの使い方を示します、
RGBColor、Gradient、GradientStop オブジェクトを使用しています。
**********************************************************/
// Check a document is open
if (app.documents.length > 0) {
var docPathItems = app.activeDocument.pathItems;
if (docPathItems.length > 0) {
// If the gradient already exists, display alert
var gradientExists = false;
var myGradients = app.activeDocument.gradients;
var numberOfGradients = myGradients.length;
var i;
if (numberOfGradients > 0) {
for (i = 0; i < numberOfGradients; i++) {
if (myGradients[i].name == "MyLinearGradient") {
gradientExists = true;
}
}
}
if (gradientExists == false) {
// Call createGradient function to create gradient myGradient
var myGradient = createGradient();
// Apply gradient myGradient to all objects selected
// in the document
for (var i = 0; i < docPathItems.length; i++) {
docPathItems[i].filled = true;
docPathItems[i].fillColor = myGradient;
}
redraw();
alert("Note that MyLinearGradient has been added to the Swatches panel.");
} else {
alert("Gradient already exists, start script from a new document.");
}
} else {
alert("No path items in the document.");
}
} else {
alert("Please open a document with path items.");
}
/*********************************************************
createGradient: Function to create a new linear gradient
with 4 GradientStops
**********************************************************/
function createGradient() {
// Create a new gradient
// A new gradient always has 2 stops
var theGradient = app.activeDocument.gradients.add();
theGradient.name = "MyLinearGradient";
theGradient.type = GradientType.LINEAR;
// Add 2 new gradient stops
var newStop1 = theGradient.gradientStops.add();
var newStop2 = theGradient.gradientStops.add();
// Create color objects for all the gradient stops
var startColor = new RGBColor();
var newStop1Color = new RGBColor();
var newStop2Color = new RGBColor();
var endColor = new RGBColor();
startColor.red = 0;
startColor.green = 100;
startColor.blue = 255;
newStop1Color.red = 0;
newStop1Color.green = 0;
newStop1Color.blue = 120;
newStop2Color.red = 120;
newStop2Color.green = 0;
newStop2Color.blue = 0;
endColor.red = 220;
endColor.green = 0;
endColor.blue = 100;
// Modify the first gradient stop
theGradient.gradientStops[0].rampPoint = 5;
theGradient.gradientStops[0].midPoint = 50;
theGradient.gradientStops[0].color = startColor;
// Modify newStop1
theGradient.gradientStops[1].rampPoint = 30;
theGradient.gradientStops[1].midPoint = 50;
theGradient.gradientStops[1].color = newStop1Color;
theGradient.gradientStops[1].opacity = 0.5;
// Modify newStop2
theGradient.gradientStops[2].rampPoint = 55;
theGradient.gradientStops[2].midPoint = 50;
theGradient.gradientStops[2].color = newStop2Color;
// Modify the last gradient stop
theGradient.gradientStops[3].rampPoint = 90;
theGradient.gradientStops[3].color = endColor;
theGradient.gradientStops[3].opacity = 0.25;
// Construct an Illustrator.GradientColor object referring to the
// newly created gradient
var myGradientColor = new GradientColor();
myGradientColor.gradient = theGradient;
return myGradientColor;
}