var a=new Array();
a.push("1");
$.writeln(a["0"]); //выводит 1
$.writeln(a["1"]); //выводит undefined
То-то и оно что по имени а не по значению. Да, точно выдает ошибку но синтаксическую, поскольку число формально идентификатором быть не может. Другой пример - обращение к полю объекта, как к индексу массива, скажем a.name эквивалентно a["name"]если обратиться по ["0"] - он переводит это в число 0, а не обращается по имени. легко проверить
То-то и оно что по имени а не по значению.
Другой пример - обращение к полю объекта, как к индексу массива, скажем a.name эквивалентно a["name"]
var a=new Array();
a.push(0);
alert(a[0]); // 0
alert(a[0.0]); // 0
alert(a[00]); // 0
alert(a["0"]); // 0
alert(a["0.0"]); // undefined
alert(a["00"]); // undefined
00000059: ExprStatement{ 2 {} 0 { }
0000005D: Call{
0000005E: Variable{"alert" false
0000006C: }
0000006D: List{ 1 {
0000006F: Property{"0" false
00000076: LocalVariable{"a" false -1
0000007A: }
0000007A: } } false
0000007B: } false
0000007C: }
0000007C: }
0000007D: ExprStatement{ 3 {} 0 { }
00000081: Call{
00000082: Variable{"alert" false
00000084: }
00000085: List{ 1 {
00000087: Property{"0" false
0000008A: LocalVariable{"a" false -1
0000008E: }
0000008E: } } false
0000008F: } false
00000090: }
00000090: }
00000091: ExprStatement{ 4 {} 0 { }
00000095: Call{
00000096: Variable{"alert" false
00000098: }
00000099: List{ 1 {
0000009B: Property{"0" false
0000009E: LocalVariable{"a" false -1
000000A3: }
000000A3: } } false
000000A4: } false
000000A5: }
000000A5: }
000000A6: ExprStatement{ 5 {} 0 { }
000000AA: Call{
000000AB: Variable{"alert" false
000000AD: }
000000AE: List{ 1 {
000000B0: Property{"0" false
000000B3: LocalVariable{"a" false -1
000000B7: }
000000B7: } } false
000000B8: } false
000000B9: }
000000B9: }
000000BA: ExprStatement{ 6 {} 0 { }
000000BE: Call{
000000BF: Variable{"alert" false
000000C1: }
000000C2: List{ 1 {
000000C4: Property{"0.0" false
000000CF: LocalVariable{"a" false -1
000000D3: }
000000D3: } } false
000000D4: } false
000000D5: }
000000D5: }
000000D6: ExprStatement{ 7 {} 0 { }
000000DA: Call{
000000DB: Variable{"alert" false
000000DD: }
000000DE: List{ 1 {
000000E0: Property{"00" false
000000E9: LocalVariable{"a" false -1
000000ED: }
000000ED: } } false
000000EE: } false
000000EF: }
000000EF: }
alert(app["version"]); // 3.5
alert(app.version); // 3.5
000000F1: ExprStatement{ 9 {} 0 { }
000000F5: Call{
000000F6: Variable{"alert" false
000000F8: }
000000F9: List{ 1 {
000000FB: Property{"version" false
0000010E: Variable{"app" false
00000118: }
00000118: } } false
00000119: } false
0000011A: }
0000011A: }
0000011B: ExprStatement{ 10 {} 0 { }
0000011F: Call{
00000120: Variable{"alert" false
00000122: }
00000123: List{ 1 {
00000125: Property{"version" false
00000128: Variable{"app" false
0000012A: }
0000012A: } } false
0000012B: } false
0000012C: }
0000012C: }
в документации примеров маловато. Зачем всю? У меня ограниченные потребности.см. документацию по объектной модели. а то всю ее тут переписывать форума не хватит
А как их перебрать? Подсчитать количество на слое, затем for с нужным количеством циклов (он же номер в массиве векторных объектов), сравнение каждого объекта с цветом абриса и выделение совпавших по цвету? Затем перенос на другой слой.перебрать все объекты, те, что подходят по цвету, закинуть в массив
var newCMYKColor = new CMYKColor();
newCMYKColor.black = 0;
newCMYKColor.cyan = 30.4;
newCMYKColor.magenta = 32;
newCMYKColor.yellow = 0;
activeDocument.layers[0].pathItems[0].fillColor = newCMYKColor;
var newCMYKColor = new CMYKColor();
newCMYKColor.black = 0;
newCMYKColor.cyan = 30.4;
newCMYKColor.magenta = 32;
newCMYKColor.yellow = 0;
var newSpot = activeDocument.spots.add();
newSpot.colorType = ColorModel.PROCESS;
newSpot.color = newCMYKColor;
var newSpotColor = new SpotColor();
newSpotColor.spot = newSpot;
newSpotColor.tint = 100;
activeDocument.layers[0].pathItems[0].fillColor = newSpotColor;
var CMYKColor_1 = new CMYKColor(); // добавляем в массив CMYKColor элемент CMYKColor_1
CMYKColor_1.black = 0;
CMYKColor_1.cyan = 30.4;
CMYKColor_1.magenta = 32;
CMYKColor_1.yellow = 0;
var Spot_1 = activeDocument.spots.add(); // добавляем в массив spots элемент Spot_1
Spot_1.colorType = ColorModel.PROCESS; // назначаем Spot_1 цветовую модель PROCESS
Spot_1.color = CMYKColor_1; // назначаем Spot_1 цвет CMYKColor_1;
var SpotColor_1 = new SpotColor(); // добавляем в массив SpotColor элемент SpotColor_1
SpotColor_1.spot = Spot_1; // задание spot (цвета) SpotColor_1
SpotColor_1.tint = 100; // задание tint (оттенка) SpotColor_1
activeDocument.layers[0].pathItems[0].fillColor = SpotColor_1;
Ооо! Scripting Guide - это отдельный непечатный эпос. Скачал с офф. сайта файл "AICS2-JavaScriptGuide.pdf". Хотел закинуть описание в переводчик - фиг, файл запаролен. Текст не скопировать. Убил время, нашел подходящую ломалку паролей. Знать бы еще, как там обзываются команды. Программно-ориентированный переводчик не всегда помогает.комментарии есть в первоисточнике, то бишь Scripting Guide + подробное описание объектной модели в Object Model Viewer. но их вам почему-то упорно не хочется изучать )
// конец задания цветов ---------------------------------------------------------------------------------------
// начало создания слоев ---------------------------------------------------------------------------------------
newlayer4.name = "Detali";
newlayer3 = activeDocument.layers.add();
newlayer3.name = "Solder";
newlayer2 = activeDocument.layers.add();
newlayer2.name = "Pad";
newlayer1 = activeDocument.layers.add();
newlayer1.name = "Otv";
// конец создания слоев ---------------------------------------------------------------------------------------
app.activeDocument.activeLayer = activeDocument.layers["Layer 1"]; // сделать активным слой "Layer 1".
app.activeDocument.layers["Layer 1"].hasSelectedArtwork = true; // выделяем все объекты на слое "Layer 1"
var sel = app.activeDocument.selection.length; // присваиваем переменной "sel" количество выделенных объектов
app.activeDocument.layers["Layer 1"].hasSelectedArtwork = false; // deselect все объекты на слое Layer 1
for (i=sel; i<0; i--)
{
if (app.activeDocument.layers["Layer 1"].pathItems[i].strokeColor = Pad_11_SpotColor)
{
??? а как выделить app.activeDocument.layers["Layer 1"].pathItems[i] ?!
}
}
...
var pgItems = doc.activeLayer.pageItems;
...
pgItems[i].selected = true;
...
Как вырезать объекты - тайна (Ctrl+X). Как и вставлять (Ctrl+F).
не два ли значка "равно" должно быть? ну,Код:if (app.activeDocument.layers["Layer 1"].pathItems[i].strokeColor = Pad_11_SpotColor)
if (app.activeDocument.layers["Layer 1"].pathItems[i].strokeColor == Pad_11_SpotColor)