Moinmoin,
ich fuchtel mich mit der Machete durch Javascript, und lerne immer mehr über die Syntax – wenn es denn schön ge/beschrieben ist. Leider kann ich die effiziente Scriptweise von Marc noch nicht verstehen, folglich error ich mich hier durch ein Projekt, bei dem ich jetzt nach Hilfe fragen will:
Meinem Script soll eine Auflistung der exportierten JPGs folgen, deren Dimension aber größer als ihr Feld in der Listbox sind. Nativ haben sie die Dialogbox gesprengt.
Aber mit myList.itemSize= [550,50]; konnte ich die Größe begrenzen…aber:
Leider werden die Bilder, wie in der scriptUI beim Begrenzen beschnitten, statt skaliert. Dafür hat Marc ein tolles Scriptschnipsel:
Image.prototype.onDraw = function()
{ // written by Marc Autret
// "this" is the container; "this.image" is the graphic
if( !this.image ) return;
var WH = this.size,
wh = this.image.size,
k = Math.min(WH[0]/wh[0], WH[1]/wh[1]),
xy;
// Resize proportionally:
wh = [k*wh[0],k*wh[1]];
// Center:
xy = [ (WH[0]-wh[0])/2, (WH[1]-wh[1])/2 ];
this.graphics.drawImage(this.image,xy[0],xy[1],wh[0],wh[1]);
WH = wh = xy = null;
}
var w = new Window ("dialog", "Bouquet");
var flowers = w.add ("image", undefined, File ("/d/scriptui/bouquet.jpg"));
flowers.size = [50,50];
w.show ();
(Quelle ScriptUI Peter Kahrel, Danke!)
Jetzt habe ich hier meine ersten Dialogfensterentwürfe, leider ohne den Rest des Scripts nicht verwendbar, aber zu lang um hier abzulegen…
[#cc0000]Wer könnte mir helfen, diesen Image-Prototype-Wahnsinn hier irgendwie einzubasteln von der Theroie her?[/#cc0000]
Hier mein Fensterchen:
var w = new Window ("dialog");
var minicounter = -1;
var myList = w.add ("listbox", undefined, "", {numberOfColumns: 4, showHeaders: true, columnTitles: ["Sicht","Export", "Name", "Größe"], columnWidths: [50,60,400,80]});
for (var k = 0; k < myMark.length; k++)
{ if (myMark[k][4] == true) {
minicounter ++;
with (myList.add ("item", "nothing yet"))
{
if (OF == false) {var FileTemp = File(myMark[k][0]);} else {var FileTemp = File(myMark[k][1]+".jpg")}
myList.items[minicounter].image = File(FileTemp);
subItems[0].text = ""+k;
subItems[1].text = FileTemp.displayName;
subItems[2].text = formatBytes(FileTemp.length);
}
}
myList.itemSize= [550,50];
}
w.show ();
}