|
|
|||||
Вопрос по компоненту Check Box...
Смотрю в русском хэлпе про Check Box, там написано, цитирую:
"SomeName.getValue() -- Возвращает true, если флажок установлен и false, если нет." я поставил чекбокс и текстовое поле (динамическое) чекбокс -- chk_test переменная текстового поля -- tf_test код следующий: tf_test=chk_test.getValue(); в текстовом поле пишет undefine если делаю: tf_test=chk_test.selected то всё работает! в текстовое поле вносится true или false. IMHO первое выражение должно давать те же результаты...или нет? Расскажите пожалуйсто!
__________________
Брат моего брата - это я! :-) |
|
|||||
_root.createEmptyMovieClip("CheckBoxes",1);
_root.CheckBoxes.size=30; _root.cCheckBox=function(name,depth,x,y){ _root.CheckBoxes.createEmptyMovieClip(name,depth); _root.CheckBoxes[name].lineStyle(1,0x000000,100); _root.CheckBoxes[name].beginFill(0xffffff,100); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,0); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,0); _root.CheckBoxes[name].tick=0; _root.CheckBoxes[name]._x=x _root.CheckBoxes[name]._y=y _root.CheckBoxes[name].onEnterFrame=function(){ if(hitTest(_root._xmouse,_root._ymouse,true)){ if(this.tick==0){ this.createEmptyMovieClip("tick",1); this.tick.lineStyle(1,0x000000,100); this.tick.moveTo(_root.CheckBoxes.size/5,_root.CheckBoxes.size/5); this.tick.lineTo((_root.CheckBoxes.size/5)*2.5,(_root.CheckBoxes.size/5)*4); this.tick.lineTo((_root.CheckBoxes.size/5)*4,_root.CheckBoxes.size/5); this.tick=1; } else{ this.tick.removeMovieClip(); this.tick=0; } } } } _root.cCheckBox("test",1,100,100); _root.onEnterFrame=function(){ trace(_root.CheckBoxes.test.tick); } //usnul production (c) 2004 -------------------------- nu kak vam takoe?
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
всё суппер, а попроще :-)
По вопросу можно было судить о моих "глубоких" познаниях во флэше .
Я хотел разобраться почему у меня не получаеться в одном случае и получаеся (что не может не радовать ) в другом. В твоем коде я много не понимаю с первого взгляда, но догадываюсь, что ты делаешь ЧекБокс самостоятельно, а не берёшь готовый. В качестве урока для себя, посижу, поразбераюсь! А на мой вопрос кто-нить ответить может? Желательно подоступнее
__________________
Брат моего брата - это я! :-) |
|
|||||
_root.createEmptyMovieClip("CheckBoxes",1); _root.CheckBoxes.size=20; _root.cCheckBox=function(name,depth,x,y){ _root.CheckBoxes.createEmptyMovieClip(name,depth); _root.CheckBoxes[name].lineStyle(1,0x000000,100); _root.CheckBoxes[name].beginFill(0xffffff,100); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,0); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,0); _root.CheckBoxes[name].tick=0; _root.CheckBoxes[name].Check=1; _root.CheckBoxes[name]._x=x; _root.CheckBoxes[name]._y=y; _root.CheckBoxes[name].onMouseDown=function(){ if(hitTest(_root._xmouse,_root._ymouse,true) and this.Check==1){ if(this.tick==0){ this.createEmptyMovieClip("tickClip",1); this.tickClip.lineStyle(1,0x000000,100); this.tickClip.moveTo(_root.CheckBoxes.size/5,_root.CheckBoxes.size/2); this.tickClip.lineTo((_root.CheckBoxes.size/5)*2.5,(_root.CheckBoxes.size/5)*4); this.tickClip.lineTo((_root.CheckBoxes.size/5)*4,_root.CheckBoxes.size/5); this.tick=1; } else{ this.tickClip.removeMovieClip(); this.tick=0; } this.Check=0; } } _root.CheckBoxes[name].onMouseUp=function(){ this.Check=1; } } _root.cCheckBox("test",1,100,100); _root.onEnterFrame=function(){ trace(_root.CheckBoxes.test.tick); } //usnul production (c) 2004 короче давай по шагам. _root.createEmptyMovieClip("CheckBoxes",1); _root. Обозначение для первого кадра основной сцены, может быть написано еще как: tellTarget(_root){}; createEmptyMovieclip(“CheckBoxes”,1); где первая часть “createEmptyMovieClip” значится для создания нового пустого «мувика» (объекта), а работает эта функция по следующему принципу: адрес.createEmptyMovieclip(“имя для нового мувика”,глубина нового мувика); «адрес» это то место где мы хотим создать наш новый клип, имя может быть выбрано любое, но с несколькими ограничениями, самым главным из которых является то, что имя не может начинаться ни с чего другого кроме как буквы, ни цифр, ни значков, ничего только буквы. Дальше, глубину это «как бы» третье измерение во флэше, то есть работает по принципу слоев, то есть «мувики» накладываются друг на друга в таком порядке, что сверху те у которых глубина «меньше». И так, “_root.createEmptyMovieClip(“CheckBoxes”,1);” означает: Создать новый «мувик» с именем «CheckBoxes» на глубине 1. ----------------------------------------------------------- _root.cCheckBox=function(name,depth,x,y){}; создадим функцию для простоты использования. _root. Это как мы уже знаем обращение к первому кадру главной сцены, значит там и создадим нашу функцию, а назовем мы ее «cCheckBox», -почему? Да просто так, можно назвать Машей, Пашей или хоть тузиком лишь бы это было написано латинскими символами (Английскими буквами), я дал имя соответственно назначению, а оно заключается в создание чек бокса, так что «с» от “create” (создать), и “CheckBox” дают нам “cCheckBox”, пойдет? Теперь чтобы наша функция вела себя как функция, на нужно прировнять ее к функции, что и делаем: _root.cCheckBox=function(){}; в круглых скобках можно задавать входные данные, а в фигурных находится «тело» функции, то есть то что она выполняет. Начнем со входных данных, но для этого давайте определимся, что же нам все таки нужно от этой функции? –делать чек бокс! Но не все так просто, еще хотелось бы создавать его не просто где попало, а там где нам это угодно. Флэш это двухмерный (два измерения) векторный редактор, то есть мы имеем «х» и «у», еще у нас есть псевдо «глубина» - слои, так что это три переменных: x, y и depth (глубина) Ещё хотелось бы иметь возможность давать этим чек боксам разные имена, ну например если мы захотим потом сделать анкету, один бокс назовём «возраст», другой «пол» и т.д. удобно? – я говорю, да! И того у нас четыре переменных: x, y, depth(глубина), name(имя). Все входные переменные указываются через запятую, вот так: function(переменная один, переменная два, переменная N); попробуем добавить: _root.cCheckBox=function(name, depth, x, y){}; -------------------------------------------------------------- _root.cCheckBox=function(name,depth,x,y){ _root.CheckBoxes.createEmptyMovieClip(name,depth); _root.CheckBoxes[name].lineStyle(1,0x000000,100); _root.CheckBoxes[name].beginFill(0xffffff,100); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,0); _root.CheckBoxes[name].lineTo(_root.CheckBoxes.size,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,_root.CheckBoxes.size); _root.CheckBoxes[name].lineTo(0,0); _root.CheckBoxes[name].tick=0; _root.CheckBoxes[name].Check=1; _root.CheckBoxes[name]._x=x; _root.CheckBoxes[name]._y=y; _root.CheckBoxes[name].onMouseDown=function(){ if(hitTest(_root._xmouse,_root._ymouse,true) and this.Check==1){ if(this.tick==0){ this.createEmptyMovieClip("tickClip",1); this.tickClip.lineStyle(1,0x000000,100); this.tickClip.moveTo(_root.CheckBoxes.size/5,_root.CheckBoxes.size/2); this.tickClip.lineTo((_root.CheckBoxes.size/5)*2.5,(_root.CheckBoxes.size/5)*4); this.tickClip.lineTo((_root.CheckBoxes.size/5)*4,_root.CheckBoxes.size/5); this.tick=1; } else{ this.tickClip.removeMovieClip(); this.tick=0; } this.Check=0; } } _root.CheckBoxes[name].onMouseUp=function(){ this.Check=1; } } Давайте вплотную посмотрим как работает наша функция. _root.CheckBoxes.createEmptyMovieClip(name,depth); - первая строчка «тела» функции, что-нибудь знакомо? _root. – главный кадр (!запомните!) _root.CheckBoxes. – ранее созданный нами “CheckBoxes” мувик. Который находится в _root. _root.CheckBoxes.createEmptyMovieClip(name,depth) – создаем клип с именем равным значению входной переменной “name” нашей функции, и на глубине “depth” полученной так же из набора входных переменных функции. Далее: ------------------------------------------------------ _root.CheckBoxes[name].lineStyle(1,0x000000,100); _root.CheckBoxes[name]. –Ага! Это интересный кусок, он служит адресом к только что нами созданному клипу с именем «name» - но как же так, что же означаю эти квадратные скобки!? - дело в том что эти скобки со строчной переменной внутри них распознаются флэшем как имя объекта со значением равным значению строчной переменной, например _root.movieone.movie2 может быть записано с следующих формах, которые по сути равны: 1) _root[“movieone”][“movie2”] 2) _root[“movieone”][“movie”+2] 3) a=”movieone”; b=”movie”+2; _root[a][b] ну и все производные отсюда. И еще одна заметка по поводу этих скобок, если мы использует такое «динамическое» (в квадратных скобках) имя, то перед ним точки ставить не нужно, ибо скобки служат разделителем. Адрес.lineStyle(1,0x000000,100); Тут можно диссертацию писать на тему программного рисования во флэше, ибо представленная выше функция является одно из этих полезных функций, но вкратце функция объявляет, что мы начинаем рассовать линии, у данной функции есть три входных переменных: Line thickness (толщина линии), line colour (цвет линии) and line alpha (коофициэнт альфа эффекта – проще говоря прозрачность). Из сказанного выше следует что «_root.CheckBoxes[name].lineStyle(1,0x000000,100);» объявляет о начале рисования не прозрачных линий черного цвета с толщиной в единицу, в мувике «_root.CheckBoxes[name]». --------------------------------------------------------- _root.CheckBoxes[name].beginFill(0xffffff,100); «_root.CheckBoxes[name].» – мувик. “beginFill(0xffffff,100);” – функция программного рисования, которая объявляет о начале заливки, пишется так: адрес.beginFill(цвет, прозначность);
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
елси интересно могу продолжить потом, щас врямя нет
ЗЫ если твои знания выше той терминалогии что я использовал, то ты только свисни.
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
про знания... :)
ну на самом деле они не такие уж совсем низкие...
про _root, создание клипа, _root.CheckBoxes[name]... тоже известно... Вот с функциями хреново! если не сказать хуже! надо тренироваться по ним, а то само слово Функция уже вызывает страх :-( Мне интересно, продолжай... как время будет. Ты на 5 или МХ пишешь? просто с Чекбоксами более менее понятно, а с другими компонентами: комбобоксами, листбоксами ситуация посложнее будет... В МХе эти компоненты существуют, значит с ними можно работать. А раз можно с ними работать, то надо учиться с ними работать.
__________________
Брат моего брата - это я! :-) |
|
|||||
Re: Вопрос по компоненту Check Box...
Цитата:
зы: и ещё я немного не понял какое отношение к заданному вопросу имеет подробное описание создания самодельного подобия чекбокса... =) |
|
|||||
странно...
а что тогда это за компонент?
------------------------------------------------------------------------------- Сводная таблица методов компонента FCheckBox Метод Описание FCheckBox.getEnabled Возвращает true, если кнопка доступна и false, если недоступна. FCheckBox.getLabel Возвращает в виде строки надпись, относящуюся к кнопке. FCheckBox.getValue Возвращает true, если флажок установлен и false, если нет. FCheckBox.registerSkinElement Регистрирует элемент внешнего вида кнопки (скин-элемент) для свойства стиля. FCheckBox.setChangeHandler Определяет функцию-обработчик, вызываемую всякий раз, когда состояние кнопки было изменено. FCheckBox.setEnabled Определяет, будет ли флажок доступен. FCheckBox.setLabel Меняет надпись кнопки во время выполнения клипа. FCheckBox.setLabelPlacement Определяет, справа или слева от кнопки будет находиться надпись. FCheckBox.setSize Устанавливает в пикселах ширину кнопки. FCheckBox.setStyleProperty Задает одно свойство стиля экземпляра компонента. FCheckBox.setValue Устанавливает и сбрасывает флажок, вызывая функцию-обработчик. -------------------------------------------------------------------------------
__________________
Брат моего брата - это я! :-) |
|
|||||
странно...
а что тогда это за компонент?
------------------------------------------------------------------------------- Сводная таблица методов компонента FCheckBox Метод Описание FCheckBox.getEnabled Возвращает true, если кнопка доступна и false, если недоступна. FCheckBox.getLabel Возвращает в виде строки надпись, относящуюся к кнопке. FCheckBox.getValue Возвращает true, если флажок установлен и false, если нет. FCheckBox.registerSkinElement Регистрирует элемент внешнего вида кнопки (скин-элемент) для свойства стиля. FCheckBox.setChangeHandler Определяет функцию-обработчик, вызываемую всякий раз, когда состояние кнопки было изменено. FCheckBox.setEnabled Определяет, будет ли флажок доступен. FCheckBox.setLabel Меняет надпись кнопки во время выполнения клипа. FCheckBox.setLabelPlacement Определяет, справа или слева от кнопки будет находиться надпись. FCheckBox.setSize Устанавливает в пикселах ширину кнопки. FCheckBox.setStyleProperty Задает одно свойство стиля экземпляра компонента. FCheckBox.setValue Устанавливает и сбрасывает флажок, вызывая функцию-обработчик. -------------------------------------------------------------------------------
__________________
Брат моего брата - это я! :-) |
|
|||||
сорри!
инет подвисал, получилось 2 раза
__________________
Брат моего брата - это я! :-) |
Часовой пояс GMT +4, время: 09:10. |
|
« Предыдущая тема | Следующая тема » |
|
|