PDA

Просмотр полной версии : Задание метки кадра, преобразованной из показаний ComboBox


vladirom
15.01.2006, 19:50
Помогите чайнику...
Имеем два ComboBox, a и b. Из них значения преобразовываю в строку, а потом объединяю. Объединенное значение должно служить меткой кадра во вложенном мувике, только чего-то не пашет. Подскажите, кто может, плз.

x = a.getSelectedItem().data;
y = b.getSelectedItem().data;
dat1 = x*10;
dat2 = y*10;
s1 = String(dat1);
s2 = String(dat2);
curFrame = s1+s2;
myMovie.gotoAndStop("curFrame");

на всякий случай вывел «curFrame» на экран в виде Dynamic Text, в нем все определяется, как надо, а в мувике кадры не меняются.

Antares
15.01.2006, 20:48
1. Пользуемся тэгом code
2.

var firstCBValue:Number = Number( a.getSelectedItem().data );
var secondCBValue:Nubmer = Number( b.getSelectedItem().data );

var targetFrame = String( firstCBValue * 10 ) + String( secondCBValue * 10 );
myMovie.gotoAndStop( targetFrame );


3. При манере написания кода без var у вас еще много вопросов будет

vladirom
15.01.2006, 21:44
1. Спасибо за назидание, впредь буду внимательнее при постинге.
2. И Ваш код не заработал, увы. Вывел в Dynamic Text "targetFrame" из Вашего кода, также все показывает правильно. А мувик не работает.
3. Извините, а написание кода без var - грубая ошибка? У меня как-то все работало до сих пор и без этого, а больших и сложных программ я не пишу, так, безделицы. Может, простите?

MOHCTEP
15.01.2006, 21:45
myMovie.gotoAndStop(curFrame);

Antares
15.01.2006, 22:07
3. Да пиши как хочешь... я называю это "писать код по-дизайнерски". Придут времена, закроют возможность писать такую ахинею в AS, будешь отучаться.

vladirom
15.01.2006, 22:33
Да, тонко подмечено. Я дизайнер и есть. Что ж мне теперь, застрелиться, что ли? Буду приучаться писать код с var... Но программистом то я уже все равно никогда не стану. А сейчас что мне делать с мувиком? Может, есть еще какие-то засады, до которых я не докопался (просто не знаю, где копать)? Все перепроверил, метки кадров на месте, в мувике менял стоп в первом кадре на onClipEvent (load) {
this.stop();
}, все безрезультатно.

Antares
15.01.2006, 22:50
on(clipEvent) на самом деле тоже из разряда "надо отучаться".

Нет, стреляться не надо. Просто учиться и все. Дорогу осилит идущий.

Попробуй руками переводить его на этот кадр, что происходит?

var targetFrame:String = "1010";
gotoAndStop( targetFrame );


У меня еще вопрос: 1010 -- это тысяча десятый кадр? или просто метка такая интересная?

vladirom
15.01.2006, 23:13
Нет, и вручную не переводится. Что-то с самим мувиком? Где смотреть?

Метки такие, но это не номера кадров, а в списках даны доли от целого, поэтому решил упростить, не выдумывать что-то, а если 2.5, то 25. Так 2.5х3.5 будет кадром с меткой 2535.

Antares
16.01.2006, 00:18
Значит, метки такой нет, что сказать...

MOHCTEP
16.01.2006, 03:21
Вот посмотри. Здесь переход не по меткам, а по номерам кадров, но это не суть.

vladirom
16.01.2006, 14:01
Да, посмотрел, все работает красиво. Но с метками почему-то не получается. А мне именно метки требуются. Может посмотрите (см. аттач), скажете где я ошибся? Плз...

Жень Шень
16.01.2006, 18:31
Привет!
То что с кодом несложилось, это не страшно. Дело наживное!
Главное: МЕТКИ кадров не должны быть ЦИФРАМИ!!!
Добавь в метках буквочку а(англ.) в начале и будет тебе счастье.
Смотри аттач.
В первых пяти кадрах метки я исправил.

vladirom
16.01.2006, 19:17
2Жень Шень:

Спасибо за внимание, разобрался :) Огромный респект от меня!

Кстати, по поводу того, что метки не должны быть цифрами - это где-то документировано? Сразу полез в хелп, но там об этом ни слова... :confused:

Жень Шень
16.01.2006, 19:43
Я проставил а (англ.!!!) до 35 кадра.
Это значит, что ComboBox А может быть только 1,5 и 2,0!!!
ComboBox В - любой.
Смотри аттач.
Все работает! :D

Жень Шень
16.01.2006, 19:51
Да, по поводу имён!
Метка кадра - суть идентификатор. А согласно ЕСМА-262 он НЕ может начинаться с цифры. Кроме сего, недопустимо применения служебных символов и знаков пунктуации (-,+,@,^,(,*,/,{,[ и т.д).

vladirom
16.01.2006, 19:54
2Жень Шень:

Да, оказывается проблема была именно в метках, а не в коде. Попробовал в своей старой версии - тоже все работает! Огромное Вам спасибо!

Жаль, что в документации по Флэшу это никак не упоминается :(
Во всяком случае (а я не первый год флэш юзаю), мне это нигде раньше не встречалось в руководствах. Правда, и цифровые метки я впервые использую, до этого обходился буквенными.

Все, тема закрыта!