As the title says how is it done in UI?
Code: Select allvar dlg = new Window('dialog', Colour Test',[100,100,480,245]);
dlg.msgPnl = dlg.add('panel', [25,15,355,130], '');
dlg.msgPnl.titleSt = dlg.msgPnl.add('statictext', [15,15,400,60], 'Do Not Press The OK Button');
dlg.msgPnl.button =dlg.msgPnl.add('button',[102,60,200,100] , 'Ok');
dlg.msgPnl.titleSt.graphics.font = ScriptUI.newFont("Times","ITALIC",14);
g = dlg.graphics;
var myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.99, 0.99, 0.00, 1]);
g.backgroundColor = myBrush;
dlg.show();
How do you change the button colour?
How do you change the button colour?
There is no color property for a dialog button, so you are unable to change it. The only option I can think of would be to have a iconbutton object, and create a image for each color you want. You can have your script change the iconbutton graphic on demand.
Patrick
Patrick
How do you change the button colour?
Thanks Patrick, maybe its time to learn how to use Flash with Photoshop UI
How do you change the button colour?
Paul MR wrote:Thanks Patrick, maybe its time to learn how to use Flash with Photoshop UI
Yeah, the examples they showed of Flash / FLEX for UI when CS3 first launched looked like they would be much, much better for doing stuff like this. Main problem (for me atleast) is Flex costs money .
If you get going with it, I would love to see some examples of what you come up with.
Patrick
Yeah, the examples they showed of Flash / FLEX for UI when CS3 first launched looked like they would be much, much better for doing stuff like this. Main problem (for me atleast) is Flex costs money .
If you get going with it, I would love to see some examples of what you come up with.
Patrick
How do you change the button colour?
looks like you can do it for FREE Patrick..
http://learn.adobe.com/wiki/display/Fle ... ed+to+Flex ... ed+to+Flex
http://learn.adobe.com/wiki/display/Fle ... ed+to+Flex ... ed+to+Flex
How do you change the button colour?
I looked into that back when CS3 came out, and if I am correct it is just the command like compiler that is free. If you want to visually build menus, you need FLEX Builder. I didn't get to far into it, so I could be mistaken.
I downloaded the 60 day trial of FLEX builder over the weekend, hoping to install it this week if I have time and play around with it.
Patrick
I downloaded the 60 day trial of FLEX builder over the weekend, hoping to install it this week if I have time and play around with it.
Patrick
How do you change the button colour?
Yes you are correct, but you can use any text editor then use the compiler.
I downloaded the trial version to play with and I'am struggling with it!
The main source of documentation seems to be the one script in the samples folder. I managed to use editboxs and get data back from Photoshop. Checkboxs are fairly easy to implement, BUT still havn't got my head around getting data/lists from Photoshop into Comboboxs.
Very crude first try : opening a document...
jsx code..
Code: Select all#target photoshop
var res =
"dialog { \
fp: FlashPlayer { preferredSize: [590, 140] }, \
}";
var w = new Window (res,"Open Selected File");
w.margins = [0,0,0,0];
w.onShow = function () {
var myJSXPath = whereAmI();
var mySWFFile = myJSXPath + "/main.swf"
var movieToPlay = new File (mySWFFile);
try {
this.fp.loadMovie (movieToPlay);
this.fp.exitApp = exitApp;
this.fp.Okay = Okay;
this.fp.whereAmI = whereAmI;
this.fp.selectFile = selectFile;
} catch (e) {
alert ("Load Movie function failed: " + e);
}
}
w.show();
function whereAmI(){
var where
try {
app.documents.test();
}
catch (err){
where = File(err.fileName);
}
return where.path;
}
function Okay(){
//Do yer stuff
app.open(myOpenDoc[0]);
exitApp();
}
function selectFile() {
myOpenDoc = openDialog();
return decodeURI(myOpenDoc);
}
function exitApp() {
try{
w.close ();
}
catch(e) {
alert(e);
}
}
mxml code..
Code: Select all<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Canvas label="New Document" width="571" height="104" x="10" y="25" borderColor="#F884F1" color="#060606" backgroundColor="#696963">
<mx:Script>
<![CDATA[
import mx.managers.CursorManager;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
public function callExitApp():void {
var f:String = "exitApp";
var m:String = ExternalInterface.call(f);
trace(m);
}
public function callOK():void {
var f:String = "Okay";
var m:String = ExternalInterface.call(f);
trace(m);
}
public function browseFile():void {
txtDocName.text = '';
var f:String = "selectFile";
var m:String = ExternalInterface.call(f);
trace(m);
var myDoc:String = m.toString();
txtDocName.text = myDoc;
}
]]>
</mx:Script>
<mx:Label x="12" y="12" text="Document:" id="lblHistogramTargetDoc" width="70" visible="true" color="#FCFF03"/>
<mx:Button x="484" y="10" label="Browse" id="btnBrowse" click="browseFile();"/>
<mx:TextInput x="85" y="10" width="391" id="txtDocName" editable="false"/>
<mx:Button x="12" y="53" label="Ok" id="btnOK" click="callOK();" width="195" fillAlphas="[1.0, 1.0]" fillColors="[#0C11E9, #0C11E9, #2BE90C, #2BE90C]"/>
<mx:Button x="357" y="53" label="Cancel" id="btnCancel" click="callExitApp();" width="195" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#1A2AF6, #1A1FF6, #F61A1A, #F61A1A]"/>
</mx:Canvas>
</mx:Application>
Any help getting a Combobox populated would be great (Font List etc).
I downloaded the trial version to play with and I'am struggling with it!
The main source of documentation seems to be the one script in the samples folder. I managed to use editboxs and get data back from Photoshop. Checkboxs are fairly easy to implement, BUT still havn't got my head around getting data/lists from Photoshop into Comboboxs.
Very crude first try : opening a document...
jsx code..
Code: Select all#target photoshop
var res =
"dialog { \
fp: FlashPlayer { preferredSize: [590, 140] }, \
}";
var w = new Window (res,"Open Selected File");
w.margins = [0,0,0,0];
w.onShow = function () {
var myJSXPath = whereAmI();
var mySWFFile = myJSXPath + "/main.swf"
var movieToPlay = new File (mySWFFile);
try {
this.fp.loadMovie (movieToPlay);
this.fp.exitApp = exitApp;
this.fp.Okay = Okay;
this.fp.whereAmI = whereAmI;
this.fp.selectFile = selectFile;
} catch (e) {
alert ("Load Movie function failed: " + e);
}
}
w.show();
function whereAmI(){
var where
try {
app.documents.test();
}
catch (err){
where = File(err.fileName);
}
return where.path;
}
function Okay(){
//Do yer stuff
app.open(myOpenDoc[0]);
exitApp();
}
function selectFile() {
myOpenDoc = openDialog();
return decodeURI(myOpenDoc);
}
function exitApp() {
try{
w.close ();
}
catch(e) {
alert(e);
}
}
mxml code..
Code: Select all<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Canvas label="New Document" width="571" height="104" x="10" y="25" borderColor="#F884F1" color="#060606" backgroundColor="#696963">
<mx:Script>
<![CDATA[
import mx.managers.CursorManager;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
public function callExitApp():void {
var f:String = "exitApp";
var m:String = ExternalInterface.call(f);
trace(m);
}
public function callOK():void {
var f:String = "Okay";
var m:String = ExternalInterface.call(f);
trace(m);
}
public function browseFile():void {
txtDocName.text = '';
var f:String = "selectFile";
var m:String = ExternalInterface.call(f);
trace(m);
var myDoc:String = m.toString();
txtDocName.text = myDoc;
}
]]>
</mx:Script>
<mx:Label x="12" y="12" text="Document:" id="lblHistogramTargetDoc" width="70" visible="true" color="#FCFF03"/>
<mx:Button x="484" y="10" label="Browse" id="btnBrowse" click="browseFile();"/>
<mx:TextInput x="85" y="10" width="391" id="txtDocName" editable="false"/>
<mx:Button x="12" y="53" label="Ok" id="btnOK" click="callOK();" width="195" fillAlphas="[1.0, 1.0]" fillColors="[#0C11E9, #0C11E9, #2BE90C, #2BE90C]"/>
<mx:Button x="357" y="53" label="Cancel" id="btnCancel" click="callExitApp();" width="195" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#1A2AF6, #1A1FF6, #F61A1A, #F61A1A]"/>
</mx:Canvas>
</mx:Application>
Any help getting a Combobox populated would be great (Font List etc).
How do you change the button colour?
Here's yet another attempt Patrick.
jsx code..
Code: Select all#target photoshop
var res =
"dialog { \
fp: FlashPlayer { preferredSize: [348, 365] }, \
}";
var w = new Window (res,"Font Names");
w.margins = [0,0,0,0];
w.onShow = function () {
var myJSXPath = whereAmI();
var mySWFFile = myJSXPath + "/main.swf"
var movieToPlay = new File (mySWFFile);
try {
this.fp.loadMovie (movieToPlay);
this.fp.exitApp = exitApp;
this.fp.callSetup = callSetup;
this.fp.callSetup2 = callSetup2;
this.fp.callSetup3 = callSetup3;
this.fp.whereAmI = whereAmI;
} catch (e) {
alert ("Load Movie function failed: " + e);
}
}
w.show();
function whereAmI(){
var where
try {
app.documents.test();
}
catch (err){
where = File(err.fileName);
}
return where.path;
}
function exitApp() {
try{
w.close ();
}
catch(e) {
alert(e);
}
}
function callSetup() {
try{
var list1 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list1.push( app.fonts.name);
}
return(list1);
}
catch(e) {
alert(e);
}
}
function callSetup2() {
try{
var list2 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list2.push( app.fonts.postScriptName);
}
return(list2);
}
catch(e) {
alert(e);
}
}
function callSetup3() {
try{
var list3 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list3.push( app.fonts.family);
}
return(list3);
}
catch(e) {
alert(e);
}
}
mxml code..
Code: Select all<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="348" height="365" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#A8A5A5, #D5C220]" creationComplete="callSetup()">
<mx:Script>
<![CDATA[
import mx.rpc.events.AbstractEvent;
import mx.controls.Alert;
import mx.events.DropdownEvent;
import flash.external.ExternalInterface;
import mx.events.FlexEvent;
[Bindable]
public var comboData1: Array;
[Bindable]
public var comboData2: Array;
[Bindable]
public var comboData3: Array;
public function callSetup():void
{
var f:Array = ["callSetup"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData1 = m;
callSetup2();
}
public function callSetup2():void
{
var f:Array = ["callSetup2"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData2 = m;
callSetup3();
}
public function callSetup3():void
{
var f:Array = ["callSetup3"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData3 =m;
}
public function callExit():void
{
var f:String = "exitApp";
var m:String = ExternalInterface.call(f);
trace(m);
}
private function changeEvt1(event:Event):void {
// Alert.show(combo1.selectedIndex.toString());
combo2.selectedIndex = combo1.selectedIndex;
combo3.selectedIndex = combo1.selectedIndex;
}
private function changeEvt2(event:Event):void {
combo1.selectedIndex = combo2.selectedIndex;
combo3.selectedIndex = combo2.selectedIndex;
}
private function changeEvt3(event:Event):void {
combo1.selectedIndex = combo3.selectedIndex;
combo2.selectedIndex = combo3.selectedIndex;
}
]]>
</mx:Script>
<mx:ComboBox x="38" y="69" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FDFAFA, #FA0707, #0707FA, #FDFBFB]" id="combo1" dataProvider="{comboData1}" change="changeEvt1(event)"></mx:ComboBox>
<mx:ComboBox x="38" y="141" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FBF9F9, #FF0101, #0303FF, #FEFCFC]" id="combo2" dataProvider="{comboData2}" change="changeEvt2(event)"></mx:ComboBox>
<mx:ComboBox x="38" y="215" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FFFDFD, #FC0000, #000CFC, #FEFDFD]" id="combo3" dataProvider="{comboData3}" change="changeEvt3(event)"></mx:ComboBox>
<mx:Label x="38" y="27" text="Font name" width="173" height="34" id="lab1" fontSize="30" fontFamily="Arial" fontWeight="bold" fontStyle="italic"/>
<mx:Text x="38" y="99" text="Postscript Name" width="271" height="34" id="txt2" fontFamily="Arial" fontSize="30" fontWeight="bold" fontStyle="italic" textDecoration="normal"/>
<mx:Text x="38" y="171" text="Family Name" width="281" height="36" id="txt3" fontFamily="Arial" fontWeight="bold" fontStyle="italic" fontSize="30"/>
<mx:Text x="100" y="312" text="Compliments of Paul R" width="148" id="txt4" fontWeight="bold" fontStyle="italic" color="#FB2104"/>
<mx:Button x="146" y="269" label="Exit" id="btnClose" click="callExit();" fillAlphas="[1.0, 1.0]" fillColors="[#070707, #070707, #FA0404, #FB0404]" themeColor="#1200FF" color="#F8FBFC" borderColor="#020202"/>
</mx:Application>
jsx code..
Code: Select all#target photoshop
var res =
"dialog { \
fp: FlashPlayer { preferredSize: [348, 365] }, \
}";
var w = new Window (res,"Font Names");
w.margins = [0,0,0,0];
w.onShow = function () {
var myJSXPath = whereAmI();
var mySWFFile = myJSXPath + "/main.swf"
var movieToPlay = new File (mySWFFile);
try {
this.fp.loadMovie (movieToPlay);
this.fp.exitApp = exitApp;
this.fp.callSetup = callSetup;
this.fp.callSetup2 = callSetup2;
this.fp.callSetup3 = callSetup3;
this.fp.whereAmI = whereAmI;
} catch (e) {
alert ("Load Movie function failed: " + e);
}
}
w.show();
function whereAmI(){
var where
try {
app.documents.test();
}
catch (err){
where = File(err.fileName);
}
return where.path;
}
function exitApp() {
try{
w.close ();
}
catch(e) {
alert(e);
}
}
function callSetup() {
try{
var list1 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list1.push( app.fonts.name);
}
return(list1);
}
catch(e) {
alert(e);
}
}
function callSetup2() {
try{
var list2 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list2.push( app.fonts.postScriptName);
}
return(list2);
}
catch(e) {
alert(e);
}
}
function callSetup3() {
try{
var list3 = new Array;
for (var i=0,len=app.fonts.length;i<len;i++) {
list3.push( app.fonts.family);
}
return(list3);
}
catch(e) {
alert(e);
}
}
mxml code..
Code: Select all<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="348" height="365" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#A8A5A5, #D5C220]" creationComplete="callSetup()">
<mx:Script>
<![CDATA[
import mx.rpc.events.AbstractEvent;
import mx.controls.Alert;
import mx.events.DropdownEvent;
import flash.external.ExternalInterface;
import mx.events.FlexEvent;
[Bindable]
public var comboData1: Array;
[Bindable]
public var comboData2: Array;
[Bindable]
public var comboData3: Array;
public function callSetup():void
{
var f:Array = ["callSetup"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData1 = m;
callSetup2();
}
public function callSetup2():void
{
var f:Array = ["callSetup2"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData2 = m;
callSetup3();
}
public function callSetup3():void
{
var f:Array = ["callSetup3"];
var m:Array = ExternalInterface.call(f[0]);
trace(m);
var fonts:Array = new Array;
comboData3 =m;
}
public function callExit():void
{
var f:String = "exitApp";
var m:String = ExternalInterface.call(f);
trace(m);
}
private function changeEvt1(event:Event):void {
// Alert.show(combo1.selectedIndex.toString());
combo2.selectedIndex = combo1.selectedIndex;
combo3.selectedIndex = combo1.selectedIndex;
}
private function changeEvt2(event:Event):void {
combo1.selectedIndex = combo2.selectedIndex;
combo3.selectedIndex = combo2.selectedIndex;
}
private function changeEvt3(event:Event):void {
combo1.selectedIndex = combo3.selectedIndex;
combo2.selectedIndex = combo3.selectedIndex;
}
]]>
</mx:Script>
<mx:ComboBox x="38" y="69" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FDFAFA, #FA0707, #0707FA, #FDFBFB]" id="combo1" dataProvider="{comboData1}" change="changeEvt1(event)"></mx:ComboBox>
<mx:ComboBox x="38" y="141" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FBF9F9, #FF0101, #0303FF, #FEFCFC]" id="combo2" dataProvider="{comboData2}" change="changeEvt2(event)"></mx:ComboBox>
<mx:ComboBox x="38" y="215" width="281" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FFFDFD, #FC0000, #000CFC, #FEFDFD]" id="combo3" dataProvider="{comboData3}" change="changeEvt3(event)"></mx:ComboBox>
<mx:Label x="38" y="27" text="Font name" width="173" height="34" id="lab1" fontSize="30" fontFamily="Arial" fontWeight="bold" fontStyle="italic"/>
<mx:Text x="38" y="99" text="Postscript Name" width="271" height="34" id="txt2" fontFamily="Arial" fontSize="30" fontWeight="bold" fontStyle="italic" textDecoration="normal"/>
<mx:Text x="38" y="171" text="Family Name" width="281" height="36" id="txt3" fontFamily="Arial" fontWeight="bold" fontStyle="italic" fontSize="30"/>
<mx:Text x="100" y="312" text="Compliments of Paul R" width="148" id="txt4" fontWeight="bold" fontStyle="italic" color="#FB2104"/>
<mx:Button x="146" y="269" label="Exit" id="btnClose" click="callExit();" fillAlphas="[1.0, 1.0]" fillColors="[#070707, #070707, #FA0404, #FB0404]" themeColor="#1200FF" color="#F8FBFC" borderColor="#020202"/>
</mx:Application>