[AI CS4-CS6] setStringPreference - баг или фича?

Статус
Закрыто для дальнейших ответов.

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Сабжевая функция в иллюстраторе вообще работает или чисто для мебели? Или это мой личный локальный баг?
Код:
preferences.setStringPreference("MyStringPref","New pref");
alert(preferences.getStringPreference("MyStringPref"));
В итоге получаем пустую строку - преференс не устанавливается
С аналогичным setIntegerPreference все ok - что за? 'hmmm'
 

dumbm1

10 лет на форуме
Сообщения
421
Реакции
196
алерт выдаёт "New pref" (CC2015)
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Гм еще интереснее
Видимо, зависит от имени преференса - к примеру, такой код
Код:
preferences.setStringPreference("p1","1");
alert(preferences.getStringPreference("p1"));
preferences.setBooleanPreference("p2",true);
alert(preferences.getBooleanPreference("p2"));
preferences.setIntegerPreference("p3",2);
alert(preferences.getIntegerPreference("p3"));
preferences.setRealPreference("p4",4);
alert(preferences.getRealPreference("p4"));
у меня все преференсы пишет и читает правильно.
Но понять, по какому принципу имена не работают неясно. 'hz'
А существует какой то способ из скрипта понять, какие именно преференсы уже есть?
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
И еще интереснее!
Дело вовсе не в именах, на самом деле, преференс "одноразовый"
С первого раза все устанавливается, но потом он переходит какбэ в read-only - читать можно, записывать бестолку, какое значение первый раз поставили, такое и будет все время, хоть перегружай иллюстратор. Если сделать removeReference, то он перманентно заполняется пустой строкой, которую уже никакими средствами поменять нельзя
Такая вот харя кришны
'otbline'
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
В общем, все таки removePreference помогает, если его непосредственно перед setStringPreference вызывать, т.е. для любой модификации строкового преференса надо делать так:
Код:
preferences.removePreference("LastName");
preferences.setStringPreference("LastName",lastname);
Так, вроде, работает, иначе не работает 'hmmm'
 
Последнее редактирование:
  • Спасибо
Реакции: sylvio, VVVSLAVA и dumbm1
Статус
Закрыто для дальнейших ответов.