@
CDK, GPR[100] например режим проигрывания: 0 - обычный, 1 - проигрываем избранное.
Извините, но я не пойму куда записывать режимы проигрывания.
И если установить флажки в меню, которое попап на самом деле, то в другом попап флажки не показываются, и не показываются нигде, если заново запустить диск. На сколько я понимаю, нужно записать данные в UDV. Только какие? В мануале и хэлпе одинаково, не разъясняется это.
Цитата:
Извините, но я не пойму куда записывать режимы проигрывания.
В моем примере - в GPR[100]
при запуске обычного просмотра пишем туда 0
при запуске просмотра избранного только - пишем туда 1
и проверяем этот GPR[100] в каждом чаптере вместе с GPR[номер чаптера]
Цитата:
И если установить флажки в меню, которое попап на самом деле, то в другом попап флажки не показываются,
Да. В каждом меню объекты свои. Если у Вас более одного меню с избранным - придется двигать во всех. Но зачем их более 1?
Цитата:
не показываются нигде, если заново запустить диск
Чтобы оно сохранялось - сохранять его придется вручную. Ни GPR, ни UDV в сторадж не пишутся.
Т.е. при каждом изменении избранного (изменении значения GPR[1]...GPR[30]) нужно его записывать в сторадж, например:
первый трек добавили
Код:
manager.setGPR(1, 1);
manager.storeData('GPR1', 1);
второй трек удалили
Код:
manager.setGPR(2, 0);
manager.storeData('GPR2', 0);
и потом при старте диска восстанавливать
Код:
manager.setGPR(1, manager.readDataInt('GPR1'));
manager.setGPR(2, manager.readDataInt('GPR2'));
...
manager.setGPR(30, manager.readDataInt('GPR30'));
Возникла проблема из-за добавления команд на кнопки пульта next и prev плейлиста муви. На просто муви (тоже видео что и в плейлисте) появились проблемы которые заключаются в том что при переключении next на любом чаптере может перескочить на второй чаптер (только). Проявляется это если заново запустить диск или зайти в меню и обратно в муви, хотя команды на next и prev просто муви я не давал. Сделал конкретные команды на next и prev, конкретный чаптер -> конкретный плеймарк в виде свича кустом, но косяк остался. Может ли быть причиной Сценарист, в котором я собирал диск? У меня v.5.3.2. Этот косяк проявлялся и на много ранее, из-за чего я отказался в свое время делать команды на next и prev некоторых попап. Ничего таково на втором чаптере нету.
Второй вопрос: Как сделать запрет на анимацию или просто не допустить анимацию меню/попап за которой идет переход на избранное, если нет в избранном ничего?
Я пробовал сделать так: if (GPR(2-16)=1-> анимация
не происходит ничего, даже если есть избранные.
По поводу next/prev - пришлите проект (файл проекта + графика).
По поводу анимации - про какую анимацию идет речь? Анимация при нажатии на кнопку? В лоб запретить ее нельзя. Можно эту анимацию + действие перенести во входную анимацию и на кнопке сделать свич с одним условием - если переходить можно - прыгаем на входную анимацию и дальше уже перейдем. Также можно попытаться кнопку с автоэкшеном использовать вместо входной анимации.
Подскажите пожалуйста код, который позволяет активировать определенное меню, если проигрываемый chapter значится как GPR=1. У меня не получается сделать это в switsh, чтобы посмотреть как это будет выглядеть в скрипте. Если это возможно конечно.
А что вы подразумеваете под
Цитата:
если проигрываемый chapter значится как GPR=1
?
Номер проигрываемого чаптера находится в GPR[1]?
Если да, то внутри муви самое простое:
Код:
manager.jumpPlayMark(manager.getGPR(1) - 1);
Если запуск из меню, то:
Код:
manager.setStartPlayMark(manager.getGPR(1) - 1);
manager.activateSegment("S:MV_CONCERT.play_movie");
"- 1" везде, т.к. плеймарки с 0 нумеруются.
Цитата:
А что вы подразумеваете под
Сообщение от maks8881
если проигрываемый chapter значится как GPR=1
?
Если проигрываемый в данный момент чаптер уже отмечен как GPR=1.
Цитата:
Если да, то внутри муви самое простое:
Код:
manager.jumpPlayMark(manager.getGPR(1) - 1);
Мне вообще-то совсем другое надо. Мне нужно чтобы при нажатии на определенную кнопку пульта во время воспроизведения видео, чтобы всплывало определенное меню, если этот чаптер уже отмечен как GPR=1.
Т.е. если в массиве GPR для чаптера N уже выставлена 1: GPR[N]=1?
А если при этом GPR[N-1] = 1 и GPR[N+1] = 1, то что должно быть? открыть можно только одно меню.
Если вам надо смотреть по самому последнему отмеченному 1 (по самому большому N), то, если максимальное чисо чаптеров 30 - делаем на этой кнопке эксклюзивный (важно) свич:
if (GPR[30] = 1) -> Jump POPUP ...
if (GPR[29] = 1) -> Jump POPUP ...
...
if (GPR[1] = 1) -> Jump POPUP ...
т.е. условия в обратном порядке.
Сперва я пробовал сделать так:
Скрытый текст
........
if (canExec && (manager.getChapter('CONCERT')==5)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK_3.05", 1873, 295);
manager.setGPR(5, 1);
manager.activateSegment("S:PM_05.animate1");
manager.storeData("GPR5", 1);
}
if (canExec && (manager.getGPR(5)==1)) {
canExec = false;
manager.activateSegment("S:PM_been_added.animate1");
}
if (canExec && (manager.getChapter('CONCERT')==6)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK_3.06", 1835, 340);
manager.setGPR(6, 1);
manager.activateSegment("S:PM_06.animate1");
manager.storeData("GPR6", 1);
}
if (canExec && (manager.getGPR(6)==1)) {
canExec = false;
manager.activateSegment("S:PM_been_added.animate1");
}
........
[свернуть]
потом попробовал создать UDFы из
........
if [GPR(5)=1]->Popup: been added [anim/act 1] - один UDF
if [GPR(6)=1]->Popup: been added [anim/act 1] - другой UDF
.......
преобразовав в скрипты и вставил их так:
Скрытый текст
.......
if (canExec && (manager.getChapter('CONCERT')==5)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK_3.05", 1873, 295);
manager.setGPR(5, 1);
manager.activateSegment("S:PM_05.animate1");
manager.storeData("GPR5", 1);
manager.UDF_05_ADD();
}
if (canExec && (manager.getChapter('CONCERT')==6)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK_3.06", 1835, 340);
manager.setGPR(6, 1);
manager.activateSegment("S:PM_06.animate1");
manager.storeData("GPR6", 1);
manager.UDF_06_ADD();
}
.........
[свернуть]
Но, результат один и тот же, если хоть один какой нибудь чаптер помечен уже как GPR=1, то на любом чаптере в муви вспывает меню been added. Потому я и задавал вчера вопросы в надежде избежать этого косяка.
А как избежать этого косяка или что я делаю не так?
Как Вы поняли мне надо при добавлении в избранное, при воспроизведении муви, чтобы всплывало попап что этот трек (конкретный трек) добавлен, и это работает, но можно до бесконечности нажимать на кнопку добавления и этот попап тоже будет показываться. А я хотел бы чтобы если конкретный трек уже добавлен, то чтобы всплывало попап been added. Я не силен в скриптах, поэтому подскажите пожалуйста как решить эту задачу.
Цитата:
мне надо при добавлении в избранное, при воспроизведении муви, чтобы всплывало попап что этот трек (конкретный трек) добавлен
Ну вот с этого и надо было начинать :)
На уровне свича - это делать по 2 условия на каждый чаптер в свиче:
if Chapter('CONCERT')==2 & GPR(2)=0 -> [MA]: [set]: GPR[2] = 1; Popup: favorites added [done] [anm/act 1]
if Chapter('CONCERT')==2 & GPR(2)=1 -> Popup: favorites already added [done] [anm/act 1]
...
Если на уровне уже готового скрипта, то нужно поменять условие во всех if'ах добавив " && manager.getGPR(2)==0":
Код:
if (canExec && (manager.getChapter('CONCERT')==2) && manager.getGPR(2)==0) {
и продублировать if'ы, заменив условие, убрав добавление/сохранение GPR и заменив переход на другое меню - как-то так:
Код:
if (canExec && (manager.getChapter('CONCERT') == 2) && manager.getGPR(2)==1) {
canExec = false;
...
manager.activateSegment("S:PM_02_already.animate2");
}