javascript - Dialogbox - har ingen konstruktør

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har intermitterende succes med at forsøge at oprette en dialogboks. Koden er gyldig.


try
{
    // Create an empty dialog window near the upper left of the screen
    var dlg = new Window("dialog", "Alert Box Builder");
    dlg.frameLocation = [100,100];
    dlg.show();
}
catch(e)
{
    alert(e);
}


Nogle gange virker det, nogle gange får jeg fejlen:


Error 22:Window does not have a constructor


Jeg aner ikke hvorfor. Sletning af Photoshop-præferencer og/eller kører som administrator virker ikke at arbejde (kører CC på Win7).

Bedste reference


Jeg kan ikke tilbyde nogen forklaring på dette, bortset fra nogle gange, at Photoshop korrumperer præferencefilen, og det medfører yderligere problemer med oprettelsen af ​​brugergrænsefladeelementer. Det er helt sikkert, jeg har oplevet dette på Windows.Den bedste ting at gøre er at slippe af med præferencefilen. Det er en stor smerte , da det sætter Photoshop tilbage til standardindstillingerne. Så, før du sletter præferencefilen, skal du lave snapshots af præferencefilen, og hvis du kan gemme dit arbejdsområde som noget andet end standardtilstand.


Foretruknefilen findes som Adobe Photoshop SCX Prefs.psp i C: \ YOURUSERNAME \ AppData \ Roaming \ Adobe \ Photoshop SCX


hvor CSX er versionsnummeret af Photoshop



  • Slet indstillingsfilen.

  • Genstart Photoshop (Det vil oprette en ny præferencefil)

  • Luk Photoshop.

  • Kopier en sikkerhedskopi af dine præferencer over den nyoprettede.

  • Genstart Photoshop.



Den indlysende ting at gøre ville være at springe over de første faser og bare kopiere over præferences filen med en sikkerhedskopi. Dette tvinge ikke Photoshop til at generere nye præferencer, og Windows-konstruktorfel vil fortsætte.


Kan jeg foreslå dig at ændre din kode til noget lignende


catch(e)
{
    //alert(e);
   alert("Photoshop was unable to create User Interface"); 
}


På den måde kan du vide det er en vinduesbyggeri fejl og ikke bare en fejl i din kode. Der er virkelig ingen vej rundt det, jeg er bange for.