Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2007, 23:42
poe вне форума Посмотреть профиль Отправить личное сообщение для poe Найти все сообщения от poe
  № 1  
Ответить с цитированием
poe
[+1.3 16.01.07]

Регистрация: Jan 2007
Сообщений: 4
По умолчанию компонент checkbox

Не знаю, как заставить работать компонент 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);
[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

Работать отказывается. Что-то тут неверно с синтаксисом или в принципе не правильно. Подскажите, пожалуйста или дайте ссылку на исходник образца. (откровенно говоря, все перерыл, не нашел ни одного, где работали бы checkbox'ы).


Последний раз редактировалось iNils; 16.01.2007 в 00:25.
Старый 16.01.2007, 01:07
Gosha_master вне форума Посмотреть профиль Отправить личное сообщение для Gosha_master Найти все сообщения от Gosha_master
  № 2  
Ответить с цитированием
Gosha_master

Регистрация: Nov 2006
Сообщений: 7
Отправить сообщение для Gosha_master с помощью ICQ
Ой, а зачем все так сложно?

Код:
on (click) {
 if (this.selected) _root.myFigure.gotoAndStop(1);
 else _root.myFigure.gotoAndStop(5);
};
Вешаешь на свой checkbox, так по идее тож оч даже не плохо работает...
и вообще 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);
Работает точно! Не запашет, напиши, пришлю файл, где все в норме...
Проблемная строчка
Код:
if (evt_obj.target.selected)
Точнее она запускается только один раз, а дальше функция не видит твой checkbox, потому и надо его явно указать.

Да и еще: если хочешь вторым способом, надо чтобы твой скрипт сущевтвовал на протяжении всей линейки!!! (5 или скока у тебя там кадров)

[iNils: Для оформления своего кода, надо использовать теги [code][/code]]


Последний раз редактировалось iNils; 16.01.2007 в 01:25.
Старый 16.01.2007, 19:47
poe вне форума Посмотреть профиль Отправить личное сообщение для poe Найти все сообщения от poe
  № 3  
Ответить с цитированием
poe
[+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);
Однако тут вопрос - как сделать, чтоб myFigure останавливался в своем пятом фрейме, если никакой чекбокс не выбран.
Я не умею перечислять сразу несколько условий: как-то так? -
Код:
if (r_circle.selected && r_square_selected && r_rectangle.selected)
_root.myFigure.gotoAndStop(5);
но не работает...
а если добавлять else для каждой из трех конструкции с if , тоже не получится.


Последний раз редактировалось iNils; 16.01.2007 в 21:32.
Старый 16.01.2007, 21:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
2 poe: Это уже наглость, два раза писал в этом топике об необходимости использование тегов [code][/code], и вам в том числе лично, а вы продолжаете игнорировать. Вам замечание.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.01.2007, 21:59
Gosha_master вне форума Посмотреть профиль Отправить личное сообщение для Gosha_master Найти все сообщения от Gosha_master
  № 5  
Ответить с цитированием
Gosha_master

Регистрация: Nov 2006
Сообщений: 7
Отправить сообщение для Gosha_master с помощью ICQ
Все сравнительно проще:

Код:
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.
Старый 16.01.2007, 22:06
poe вне форума Посмотреть профиль Отправить личное сообщение для poe Найти все сообщения от poe
  № 6  
Ответить с цитированием
poe
[+1.3 16.01.07]

Регистрация: Jan 2007
Сообщений: 4
2 iNils -
sorry, не заметил.

Код:
 break;
2 Gosha_master -
спасибо, попробую, помедитирую...

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.