Cíl lekce
Jako první úvodní lekci jsem vybral přiblížení obrázku v programu Adobe Photoshop podle zadaných hodnot. Jedná se o jednoduchý skript, který pracuje pouze s jednou třídou a ID (identifikátorem) dané události, tedy výčtovým typem z tabulky. Skript se bude skládat pouze z několika řádků kódu, ale tato ukázka se může libovolně zakomponovat do složitějších skriptů při nastavování prostředí, například pří nastavování jednotek, či pravítka skriptem. Viz. bakalářská práce kapitola Preferences.
Výchozí nastavení - obrázek 2.1
Přiblížené nastavení - obrázek 2.2
Oddálené nastavení - obrázek 2.3
Nastavení pro zobrazení celého obrázku na obrazovce - obrázek 2.4
Nastavení zobrazení vzhledem k pixelům, tedy 100% - obrázek 2.5
Využité třídy v této lekci
- Application: využiji metodu runMenuItem(), která je součástí této třídy.
Zjištění zda-li je otevřený soubor
Jako první krok potřebuji zjistit, jestli je otevřený soubor na který budu přilížení aplikovat. V
případě, že bych tuto
možnost neošetřil, vývojové prostředí by zahlásilo chybu,
že kód nelze provést.
Tento problém tedy jednoduše ošetřím podmínkou (if), ve které se zeptám jestli atribut documents
třídy Application má velikost nula.
V případě že ano, informuji uživatele dialogovým oknem, pokud ne, pokračuji dále po větvi
(else).
//je otevřený soubor? - velikost souboru je nula?
if(documents.length == 0){
//informuj uživatele dialogem
alert("Není otevřený žadný soubor", "Nezdařilo se!");
}else{
...
}
Získání Event ID
Metoda runMenuItem() vyžaduje v parametru ID události kterou má spustit. Toto ID mohu získat
z
převedení čtyřmístného stringu (řetězového datového typu) z tabulky s názvem Event ID Codes,
kterou společnost Adobe přikládá jako dodatek ke svým skriptovacím příručkám.
Musím ovšem říci, že tato tabulka nezahrnuje zcela všecky ID událostí a velice mnoho dalších jich je
možno najít na webových fórech a podobně. Jestli tedy již mám získaný ID kód události,
kterou potřebuji, musím ji převést na identifikační kód v číslicové podobě. K tomu poslouží jednoduchá
funkce, kde použiji metodu charIDToTypeID(params), která vrací numerické číslo události.
Funkce je vidět níže.
//získej event ID z řetězce
function getEventID(stringID) {
return app.charIDToTypeID(stringID);
}
Využití metody runMenuItem()
Na závěr, kdy již mám vše připravené mi stačí jen zavolat metodu runMenuItem(), kde do
parametru vložím metodu pro získání ID, která obsahuje
řetězec události, jaká se má provést. Pro zobrazení grafiky s ohledem na velikost obrazovky využiji
řetězec "FtOn", pro oddálení "ZmOt", přiblížení "ZmIn" a pro zobrazení obrázku
vzhledem k pixelovým bodům "ActP".
runMenuItem(getEventID("FtOn"));
runMenuItem(getEventID("ZmOt"));
runMenuItem(getEventID("ZmIn"));
runMenuItem(getEventID("ActP"));
Uspání vlákna
Pro přehlednost mezi provedením jednotlivých akcí, použiji globální funkci
na uspání vlákna. Pokud bych tuto funkci nepoužil, příkazy by se provedly okamžitě a uživatel by
nepostřehl, že se některý z příkazů vůbec provedl.
Zavoláním tedy funkce sleep(), která je součástí globálního objektu $, uspím
vlákno na daný počet milisekund.
$.sleep(1000);
Výsledný zdrojový kód
function getEventID(charID) {
return app.charIDToTypeID(charID);
}
if (documents.length == 0) {
//informuj uživatele dialogem
alert("Není otevřený žadný soubor", "Nezdařilo se!");
} else {
runMenuItem(getEventID("FtOn"));
//Uspání vlákna na jednu vteřinu
$.sleep(1000);
//Provedení přiblížení
runMenuItem(getEventID("ZmOt"));
$.sleep(1000);
runMenuItem(getEventID("ZmIn"));
$.sleep(1000);
runMenuItem(getEventID("ActP"));
}