![]() |
|
||||||||||
|
|||||
|
[+1.3 16.01.07]
Регистрация: Jan 2007
Сообщений: 4
|
Не знаю, как заставить работать компонент checkbox.
Мне нужно, чтоб в зависимости от того, включен или нет чекбокс при переходе на следующий кадр, сценарий мувиклипа, находящегося там останавливался бы в том или ином фрейме. Экземпляр мувиклипа, соответственно, называется myFigure. В первом фрейме на главной сцене ввенден такой код: stop();
initValues();
r_circle.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function(evt_obj:Object) {
if (evt_obj.target.selected) {
_root.myFigure.gotoAndStop(1);
} else {
_root.myFigure.gotoAndStop(5);
}
};
r_circle.addEventListener("click", checkboxListener);
Работать отказывается. Что-то тут неверно с синтаксисом или в принципе не правильно. Подскажите, пожалуйста или дайте ссылку на исходник образца. (откровенно говоря, все перерыл, не нашел ни одного, где работали бы checkbox'ы). Последний раз редактировалось iNils; 16.01.2007 в 00:25. |
|
|||||
|
Ой, а зачем все так сложно?
on (click) {
if (this.selected) _root.myFigure.gotoAndStop(1);
else _root.myFigure.gotoAndStop(5);
};
и вообще checkbox не люблю, т.к. использует много встроенных классов, в следствии чего много весит! Как впрочем все встроенные компоненты. Лучше написать такую байду самому, если не лень. Умещается в 2 строчки, итог - тотже! Ну а если так охота как написал, то: stop();
initValues();
r_circle.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function() {
if (_root.r_circle.selected) _root.myFigure.gotoAndStop(1);
else _root.myFigure.gotoAndStop(5);
};
r_circle.addEventListener("click", checkboxListener);
Проблемная строчка Точнее она запускается только один раз, а дальше функция не видит твой checkbox, потому и надо его явно указать. Да и еще: если хочешь вторым способом, надо чтобы твой скрипт сущевтвовал на протяжении всей линейки!!! (5 или скока у тебя там кадров) [iNils: Для оформления своего кода, надо использовать теги [code][/code]] Последний раз редактировалось iNils; 16.01.2007 в 01:25. |
|
|||||
|
[+1.3 16.01.07]
Регистрация: Jan 2007
Сообщений: 4
|
спасибо, кое-что заработало!
правда первый вариант однозначно не пашет... что касается второго, то я хочу, чтоб у меня было несколько чекбоксов: соответственно код несколько подправил: stop();
initValues();
r_circle.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function() {
if (_root.r_circle.selected)
{ _root.myFigure.gotoAndStop(1);
_root.combo_var.gotoAndStop(1);
}
};
r_circle.addEventListener("click", checkboxListener);
//
r_square.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function() {
if (_root.r_square.selected)
{ _root.myFigure.gotoAndStop(2);
_root.combo_var.gotoAndStop(2);
}
};
r_square.addEventListener("click", checkboxListener);
//
r_rectangle.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function() {
if (_root.r_rectangle.selected)
{ _root.myFigure.gotoAndStop(3);
_root.combo_var.gotoAndStop(3);
}
};
r_rectangle.addEventListener("click", checkboxListener);
Я не умею перечислять сразу несколько условий: как-то так? - if (r_circle.selected && r_square_selected && r_rectangle.selected) _root.myFigure.gotoAndStop(5); а если добавлять else для каждой из трех конструкции с if , тоже не получится. Последний раз редактировалось iNils; 16.01.2007 в 21:32. |
|
|||||
|
Все сравнительно проще:
r_circle.selected = r_square.selected = r_rectangle.selected = false;
var checkboxListener:Object = new Object();
checkboxListener.click = function(box) {
var frame_go:Number;
var type:String = box.target._name;
switch (type) {
case 'r_circle': frame_go = 1; break;
case 'r_square': frame_go = 2; break;
case 'r_rectangle': frame_go = 3; break;
}
if (box.target.selected) {
_root.myFigure.gotoAndStop(frame_go);
_root.combo_var.gotoAndStop(frame_go);
}
};
r_circle.addEventListener("click", checkboxListener);
r_square.addEventListener("click", checkboxListener);
r_rectangle.addEventListener("click", checkboxListener);
if (r_circle.selected, r_square.selected, r_rectangle.selected == false) {
_root.myFigure.gotoAndStop(5);
_root.combo_var.gotoAndStop(5);
}
Последний раз редактировалось Gosha_master; 16.01.2007 в 22:16. |
|
|||||
|
[+1.3 16.01.07]
Регистрация: Jan 2007
Сообщений: 4
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|