Quantcast
Channel: Adobe Community : Popular Discussions - Illustrator Scripting
Viewing all articles
Browse latest Browse all 12845

BIG Problem about save selection!

$
0
0

Hi,everybody!

I an new about js.  A few day ago, I wrote a "saveSelection dialog.jsx". It can work in "Dialog" windows type. BUT it can't work immediately while I change "Dialog" to "Palette", because I want to the palette stay the screen so as to I can use when I need.

 

Could you help ME!

Forgive me poor english, thanks in advance for your help

below is code:

 

// JavaScript Document
//(function () {    var doc=app.activeDocument,u,array=new Array();;
var w=new Window("palette"),//dialog is work
listPnl=w.add("panel");
//listPnl.size=
entry = listPnl.add ("edittext", u," Type the first letter"); //请输入首字进行查找
entry.graphics.font = ScriptUI.newFont ("Arial", "", 16);
entry.size=[200,30];
entry.active = true;
G_Slist=listPnl.add('group');
G_Slist.orientation='row';
Slist=G_Slist.add('listbox');//,u,u,{multiselect: true}
Slist.alignment='left';
Slist.size=[140,100];
Slist.scrolling=true;
orderG=G_Slist.add('group');
orderG.orientation='column';
orderPnl=orderG.add('panel');
orderPnl.margins=2;
orderPnl.size=[50,100];
orderPnl.alignChildren=['fill','center'];
var select=orderPnl.add("button", undefined, "SEL");
select.size=[40,20];
var up =orderPnl.add ("button", undefined, "Up");//Up
up.size=[40,20];
var down = orderPnl.add ("button", undefined, "Down");
down.size=[40,20];
addSel=listPnl.add('button{text:"+ add 增加选择到清单"}');
addSel.size=[200,20];
deleteSel=listPnl.add('button{text:"- delete 从清单中删除"}');
deleteSel.size=[200,20];
updateItems ();


function updateItems() {
if (doc.pageItems.length>0) {    for (var i=0;i<doc.pageItems.length;i++) {        if (doc.pageItems[i].note !='') {            if (!(Slist.find(doc.pageItems[i].note))) list=Slist.add('item',doc.pageItems[i].note);                   }        }       }
}



addSel.onClick=function() {
    var p = prompt("Save Selection","Name the Selection");//存储所选对象请输入名称
    if (doc.selection.length>0 &&  p!=null){        var list=Slist.add('item',p);        for (var i=0;i<doc.selection.length ;i++ ){            doc.selection[i].note=p            }        app.redraw()        }


//删除空项 delete null items
        for (var j=0;j<Slist.items.length;j++){            var replice=true;            var temp=Slist.items[j].text;            for (var k=0;k<doc.pageItems.length ;k++ ){            if (temp==doc.pageItems[k].note) replice=false;            }        if (replice)   Slist.remove(temp);        }          updateItems ()    }


var temp;
Slist.onDoubleClick=function(){
    doc.selection=null;        var temp=Slist.selection.text;        for (var i=0;i<doc.pageItems.length;i++) {            if (doc.pageItems[i].note ==temp) {                doc.pageItems[i].selected=true;               }           }       app.redraw()           }


deleteSel.onClick=function(){
    if (Slist.selection.length!=0) {        var temp=Slist.selection.text;        Slist.remove(temp);        for (var i=0;i<doc.pageItems.length;i++) {            if (doc.pageItems[i].note ==temp) {                doc.pageItems[i].note='';               }           }       }   app.redraw();   updateItems ();   }


select.onClick=function(){
    doc.selection=null;        var temp=Slist.selection.text;        for (var i=0;i<doc.pageItems.length;i++) {            if (doc.pageItems[i].note ==temp) {                doc.pageItems[i].selected=true;               }           }       app.redraw()        }


up.onClick = function (){
    var n = Slist.selection.index;    if (n > 0){        swap (Slist.items [n-1], Slist.items [n]);        Slist.selection = n-1;        }    }




down.onClick = function (){
    var n = Slist.selection.index;    if (n < Slist.items.length-1){        swap (Slist.items [n], Slist.items [n+1]);        Slist.selection = n+1;        }    }


function swap (x, y){
    var temp = x.text;    x.text = y.text;    y.text = temp;    }






var array=new Array();
for (var n=0;n<Slist.items.length;n++) {    array.push(Slist.items[n].text)    }
entry.onChanging = function (){    var tmp = this.text;    tmp=tmp.toString();    Slist.removeAll ();    //if (tmp!='') {        for (var m = 0; array[m]; m++) {            if (array[m].indexOf (tmp) == 0) list=Slist.add ('item', array[m]);            if (Slist.items.length > 0)   Slist.selection = 0;            }        }

w.onClick=w.onMove=function () {
  entry.text='';  entry.active=true;
}




/*
entry.onChange = function () {
        var array1=new Array();    for (var n=0;n<Slist.items.length;n++) {        array1.push(Slist.items[n].text)        }    for (var m1 = 0; array1[m1]; m1++) {        list=Slist.add ('item', array1[m1]);        }    }*/




/*
function ShiftList (){
    if (this.selection != null)  {        var idx = this.selection.pop().index;        if (idx < this.items.length)  this.revealItem (idx);           }    }
 */



w.show()


//}
//)()


Viewing all articles
Browse latest Browse all 12845

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>