похоже, что в самом Акробате основной размер иконок 24 х 24 (стандартный размер)
но для JS кнопок они разрешили только 20 х 20 (нестандартный размер для иконки)
может поэтому 16 х 16 (стандартный размер) иконки получается, а 20 х 20 - нет
Вы как то быстро сами себе задаете вопрос и сами на него отвечаете и задаете следующий
что в этом плохого, если хотя бы сам себе отвечаю?
Там в комьюнити полно примеров и на 16x16 и на 20x20
Вы приведите конкретные примеры кода, который у вас работает и не работает
ну вот например такой код
Код:
function helloWorld()
{
//Say Hello World
app.alert("Hello World");
}
var CreateButton = app.trustedFunction( function() {
app.beginPriv();
var myDoc = app.newDoc(1,1);
var img = myDoc.importIcon("publishbutton", "/C/Development/tst.jpg", 0);
var oIcon = util.iconStreamFromIcon(myDoc.getIcon("publishbutton"));
app.addToolButton({
cName: "helloWorldBtn", // A name for your button
oIcon: oIcon,
cExec: "helloWorld()", //Function to Call
cTooltext: "Say Hello World" //The Help Text
});
myDoc.closeDoc(true);
app.endPriv();
});
CreateButton();
рабочий, но создает документ перед каждым запуском Акробата. Таким образом, если кнопок штук 5 - значит будет создавать 5 документов - будет мельтешить на экране
есть ли способ без создания нового документа перед импортом иконки?
нашел только HEX способ, но не могу в нём получить строку иконки 20 х 20, только 16 х 16
например такой код выдаёт иконку 20 х 13 (если перемножить 20х13 будет 260, что примерно равно 16х16=256), она как раз в конце обрезанная в последней строке на несколько пикселов
Код:
var myIconStream = "ff9f4e7bffa54b7fffa84880ffac4481ffb04182ffb23e83ffb53c84ffb83785ffb93785ffba3685ffba3685ffba3685ffb83a84ffb53a85ffb23e83ffb04182ffad4381ffa94780ffa44b7fffa04c7cffa54b7fffaa4680ffad4381ffb23e83ffb63c83ffb93785ffbc3086ffbd2d86ffc2428dffc33e8cffc02c87ffbf2c86ffbe2c87ffbc3086ffb93686ffb63b84ffb23e83ffae4282ffa94780ffa6497fffa84880ffac4481ffb24083ffb83a84ffba3485ffbe2d86ffc12588ffc62d8bffe196bfffebbfd6ffd877adffc5238affc32289ffc12788ffbe2d86ffba3386ffb83a84ffb23e83ffad4382ffaa4680ffac4481ffb13f83ffb63b84ffbb3286ffbf2a86ffc32288ffc7258affe08ab9fff5dce9fff9f5f8fff0c9dcffd96eaaffc71b88ffc51e88ffc32288ffc02a88ffbb3286ffb83a84ffb13f83ffad4382ffaf4182ffb53c83ffba3685ffbf2a86ffc42288ffc61c88ffdd78b1fff3d2e4fffcf8fbfffffffffffaf5f7fff0c3dbffda6aaaffc9198affc61c88ffc42288ffc02a88ffba3386ffb53c84ffb04182ffb23e83ffb83a84ffbe2d86ffc22588ffc61e89ffca168affd7499efff0b7d6fffaf3f7fffefefefffefefefff9f2f6fff1c6dcffde72afffc91a8affc61c89ffc32288ffbe2c87ffb83986ffb43e83ffb53c84ffba3386ffc02788ffc61e88ffc9198affcc138bffd1158effdf4fa5fff1b5d7fff9f2f6fffefefefffefefefffaf3f7fff1c6ddffdd6babffc9188affc61e89ffc12788ffba3386ffb63b84ffb63a84ffbd2d86ffc22588ffc71a89ffcc158affcf0f8bffd10a8cffd50c8fffe449a8fff4b6d8fffbf6f8fffefefefffffffffff9f2f6fff0c2daffdb66a8ffc81a89ffc42288ffbd2f86ffb93886ffb93785ffcb5d9cffe39cc2ffe8a1c7ffeb9ec8ffec9cc8ffed97c8ffef94c7fff19bcbfff6c9e2fffaf5f8fffefefefffffffffffefefffff9f2f6fff0c3daffdb6facffc52289ffbf2c87ffb93485ffba3386ffd57dadfff4e7effffaf6f9fffaf6f9fffaf6f9fffaf6f9fffaf6f9fffaf6f9fffbf7fafffcfcfdfffefefefffffffffffffffffffdfffffffaf5f7fff1c9ddffd974acffc02e88ffba3386ffba3386ffd781aefff7eef3fffefefefffefefefffefefefffefefefffefefefffefefffffefefffffefefefffffffffffffffffffffffffffdfffffffdfefefff7f0f4ffe8abcbffc02e88ffba3386ffb93686ffd77faffff8f0f3fffffffffffffffffffffffffffffffffffdfffdfffdfffdfffffffefffffffffffffffffffffffffffffffffffefefefffbf8f9fff3d3e3ffda7ab0ffc02a88ffba3386ffb93686ffcd66a0ffe9aeccffedb4d2ffefb1d2fff1aed2fff3abd2fff3a8d1fff4abd5fff7d2e6fffbf7fafffefefefffffffffffefefefffaf5f7fff4cee1" ;
var oIcon = { count: 0, width: 20, height: 20, read: function(nBytes){return myIconStream.slice(this.count, this.count += nBytes)}, GetIcon: function() {this.count = 0; return this;} };
function helloWorld(){app.execMenuItem ("FitVisible");}
app.addToolButton({cName: "1", cLabel: "1", oIcon: oIcon, cExec: "helloWorld()"});
такой код работает нормально, но на 16 х 16
Код:
var myIconStream = "fffffffffffefcfefffefcfffffdf8fbfffcf5f6fff8eaeafff5e0defff4dedbfff4dcd9fff6e4e2fffaefeffffdf8f8fffefcfdfffbfcfcfffcfffefffcfffffffefefefffefdfffffefbfefffaf1f2fff3dedeffe5c7c6ffdbb6b2ffd4afabffd4b0acffd7bbb9ffe0cdcdffede3e2fff5f2f4fffafbfbfffcfffefffcfffffffcf7fafffaf1f2fff6e1e2ffedc1c1ffe39897ffdd7571ffda5d56ffd9564dffd95950ffdb6861ffdf817bffe6a6a3fff0cecbfff8eae9fffefbfbfffefcfcfffcf5f7fff8e8e9fff0ceccffe59f9dffd26e68ffc44d43ffc53e2effbf3a28ffc23c2affb74237ffb6544dffbf7a76ffd5ada9fff0dad8fffbf6f6fffefcfcfffaefedfff1d1cfffe5a09cffdb685effd7432cffd73c19ffd73a13ffd73a12ffd73a12ffd23916ffcf3b1dffc44b3affd07a71ffe9b9b3fff7ebe7fffdfaf6fff9eceaffedc4c1ffe08881ffcc4e40ffcd391affd13915ffd73a14ffd73b15ffd73a14ffd13916ffc73716ffb03925ffb55e54ffd1a19cffebe0dbfffcf7f4fff6e4e0ffe9b1b0ffdc6c68ffd2412affd63913ffd33a15ffd23b16ffcd3913ffcc3813ffd53b17ffd73a16ffc2361bffc2493dffd18983ffe7d1cafff9eee8fff6e2dfffe8adabffdb6761ffcf3e26ffd73914ffd73c17ffd23b16ffc9370fffc9370fffd63b17ffd73b18ffc2371cffbe4538ffc9817bffe0cac3fff8e9e3fff4ddddffe7abadffdb6866ffd4402bffd73914ffd63b17ffd23a16ffca360fffc9360fffd43a15ffd73a16ffc2361bffc3453bffcf817fffe4c7c4fff6e3e2fff6e3e4ffe9b4b6ffdc7271ffd84633ffd73a17ffd63b17ffd33b17ffcf3914ffcf3914ffd73b17ffd73a17ffc83920ffcd4e46ffdb8d8bffedd0cdfff8e9e7fffbf4f5fff0cfd0ffe39793ffd35c50ffcf3d24ffd03919ffd73a16ffd73a15ffd73a16ffce3919ffc7391effb64334ffbf6d66ffd9aca9ffefe5e3fffcf7f7fffdf8fafff4dedeffe8b1afffdd7871ffd84d3bffd73f22ffd73b18ffd73a16ffd73a16ffd33c1cffd4432bffd05c50ffe08e88ffeec7c4fffbf2f0fffdfafafffbfffffffcf6f7fff6e2dfffebbab6ffd78c85ffc76960ffc35347ffbb4b3effbb4c3fffb75a51ffbd756cffcc9d97ffe1cbc6fff5eeecfff8fffffff8fffffff9fcfefffdf9f9fffbf2f0fff4dcd9ffebbcb8ffe49d98ffe0857fffde7c75ffde7d76ffe19088ffe7aaa4ffefccc6fff8eae6fffefcf9fff9fffffff8fffffffbfcfffffcfdfffffffefffffefcfffffbf4f6fff4e5e4ffebd6d3ffe4d0ccffe4d0ccffe8dbdafff2ebecfff9f8fbfffbfffffffafffffffafffffffafffffffefffffffafbfffffbfafffffefcfffffdfafdfffcf6f6fff9eeebfff8eae7fff8eae6fffbf2f0fffdfafbfffffefffff8fcfffff4f9fefff9fffffffaffff" ;
var oIcon = { count: 0, width: 16, height: 16, read: function(nBytes){return myIconStream.slice(this.count, this.count += nBytes)}, GetIcon: function() {this.count = 0; return this;} };
function helloWorld(){app.execMenuItem ("FitVisible");}
app.addToolButton({cName: "1", cLabel: "1", oIcon: oIcon, cExec: "helloWorld()"});
мне нужен способ добавления иконки без создания каждый раз для этого нового документа
если этот способ единственный через HEX строку, то нужен способ получения этой строки из иконки размером 20 х 20, потому что в той теме способ получения нормально работает только для 16 х 16
Код:
this.importIcon("myIcon", "/D/111.png", 0);
var oIcon = util.iconStreamFromIcon(this.getIcon("myIcon"));
oIcon.read();
если нужен пример нерабочего кода - вот например кружок 20 х 20
Код:
var myIconStream = "00000000000000000000000003d73a1415d73a141cd73a1429d73a142cd73a1427d73a1418d73a1406d73a1403d73a1400000000000000000000000000000000000000000cd73a142ad73a1451d73a1465d73a147fd73a147ed73a146fd73a1453d73a142cd73a1418d73a1406d73a1400000000000000000000000006d73a1424d73a1456d73a1493d73a14afd73a14c4d73a14c7d73a14b9d73a148ed73a1459d73a1436d73a140fd73a14000000000000000007d73a142dd73a1454d73a14a6d73a14ddd73a14efd73a14f7d73a14f8d73a14f4d73a14dcd73a14a7d73a1473d73a1431d73a1406d73a140000000015d73a1451d73a1490d73a14ddd73a14fcd73a14fed73a14ffd73a14ffd73a14fed73a14fbd73a14e4d73a14b2d73a1452d73a1412d73a14000000001cd73a1469d73a14add73a14efd73a14fed73a14ffd73a14ffd73a14ffd73a14ffd73a14fed73a14f3d73a14cbd73a1469d73a1418d73a1406d73a1429d73a147cd73a14c3d73a14f7d73a14ffd73a14ffd73a14ffd73a14ffd73a14ffd73a14fed73a14fad73a14e0d73a147ed73a1428d73a140cd73a142cd73a147ed73a14c6d73a14f8d73a14ffd73a14ffd73a14ffd73a14ffd73a14ffd73a14fed73a14fbd73a14e1d73a1481d73a142cd73a140cd73a1427d73a146fd73a14b9d73a14f4d73a14fed73a14ffd73a14ffd73a14ffd73a14ffd73a14fed73a14f8d73a14d9d73a1479d73a142cd73a140cd73a1414d73a1453d73a1490d73a14dcd73a14fbd73a14fed73a14fed73a14fed73a14fed73a14fad73a14e1d73a14b2d73a1455d73a1412d73a1403d73a1406d73a142cd73a1455d73a14aad73a14e4d73a14f3d73a14fad73a14fbd73a14f8d73a14e1d73a14add73a1473d73a142ed73a1406d73a14000000000000000012d73a1431d73a1471d73a14b4d73a14ced73a14dfd73a14e1d73a14d9d73a14b4d73a1474d73a144dd73a1418d73a1400000000000000000000000003d73a140cd73a142dd73a1451d73a146ad73a1480d73a1483d73a1476d73a1455d73a142cd73a141ad73a1406d73a14000000000000000000000000000000000000000006d73a140cd73a141ed73a142ad73a142cd73a1424d73a1415d73a140000000000000000000000000000000000000000000000000000000000000000000000000000000006d73a140cd73a140cd73a1406d73a14000000000000000000000000000000000000000000000000" ;
var oIcon = { count: 0, width: 20, height: 20, read: function(nBytes){return myIconStream.slice(this.count, this.count += nBytes)}, GetIcon: function() {this.count = 0; return this;} };
function helloWorld(){app.execMenuItem ("FitVisible");}
app.addToolButton({cName: "1", cLabel: "1", oIcon: oIcon, cExec: "helloWorld()"});