PDA

Просмотр полной версии : ChekBox true или false


3r0jan
02.02.2007, 22:09
подскажет кто возможно ?
как сделать chekbox програмно чтоп он был в состоянии true или false
например типа

on (release) {
scale = "ud"+random(5);
scale = true
}

LeXi42006
02.02.2007, 22:47
Может,
if(this.selected == true) {
sel = true
} else {
sel = false
}Так?

3r0jan
02.02.2007, 23:20
причём тут this.selected ? ) если я жму на кнопку а активироваться должен один из пяти chekbox'ов

Nirth
03.02.2007, 00:37
Пользователь троян, обладатель двух предупреждений, откровенно отказывается читать правила, и названия разделов?

Zone71
03.02.2007, 00:42
подскажет кто возможно ?
как сделать chekbox програмно чтоп он был в состоянии true или false
например типа

on (release) {
scale = "ud"+random(5);
scale = true
}

checkbox не может быть в состоянии true или false, могут быть свойства например selected или visible... если при нажатии на кнопку должен активироваться или деактивироваться один из checkbox`ов то как то так.
var listener:Object = new Object()
listener.click = function() {
имя_checkbox`a.visible = false (или true)
}
buttonInstance.addEventListener("click",listener)где buttonInstance -имя кнопки

3r0jan
03.02.2007, 01:49
Пользователь троян, обладатель двух предупреждений, откровенно отказывается читать правила, и названия разделов?
извини ...

3r0jan
03.02.2007, 01:59
неполучается (
создал чекбокс ud0 кнопку btn
в кадре на тайм лайн прописал
var listener:Object = new Object();
listener.click = function() {
ud0.selected = true;
};
btn.addEventListener("click", listener);
и чего непашеть (

Zone71
03.02.2007, 02:50
ты можешь конкретно сказать у тебя не получается или лучше выложи исходник

3r0jan
03.02.2007, 03:08
куда ещё конкретнее ? ) :wacko:
создал пять чекбоксов с именами ud0 ud1 ud2 ud3 ud4
все они в состояние false тобиш без галочек
надо сделать так чтобы при нажатии на кнопку происходило чтот то типа

btn.onPress (){
tmp1 = "ud"+random(5)
tmp1.selected = true
}

ну тобиш ставилась галочка в одном из чек боксов в соответствии с тем какое имя получилось в tmp1

Nirth
03.02.2007, 12:20
import mx.controls.Button;
import mx.controls.CheckBox;

var checkBoxes:Array = new Array();
var button:mx.controls.Button;

function changeCheckBoxValue(event:Object):Void
{
var maximum:Number = checkBoxes.length;
var index:Number = Math.floor(Math.random() * maximum);

var cb:CheckBox = CheckBox(checkBoxes[index]);
cb.selected = (cb.selected) ? false : true;
}

function createGUI():Void
{
for ( var i:Number = 0; i < 5; i ++)
{
checkBoxes.push(createClassObject(CheckBox, "cb" + i.toString(),
getNextHighestDepth(),
{_y: i * 23, label: "cb "+ i.toString()} ));
}

button = createClassObject(mx.controls.Button, "button",
getNextHighestDepth(),
{_y: 6 * 23, _width: 140, label: "Change ChechBox"});
button.addEventListener("click", changeCheckBoxValue);
}

createGUI();

Так?

3r0jan
03.02.2007, 12:49
ну типа так только их ненадо создавать програмно ) ибо мне тяжело разобраться как они создаются и как им задать нужные имена которые будет видеть пользователь и почемуто активируется по нескольку боксов одновременно когда нужно чтоп был активен только один

3r0jan
03.02.2007, 13:19
у меня было вот так с мувиками самодельными но они не красивые )
on (release) {
for (i=0; i<=5; i++) {
tellTarget ("ud"+i) {
gotoAndStop(1);
}
tellTarget ("bl"+i) {
gotoAndStop(1);
}
}
scale = "ud"+random(5);
tellTarget (scale) {
gotoAndStop(2);
}
scale2 = "bl"+random(5);
tellTarget (scale2) {
gotoAndStop(2);
}
}

Nirth
03.02.2007, 13:31
А в чем проблема, у тебя есть чек боксы, там есть метод-переключатель состояния, снеси программное создание, и понасоздавай в ручную

telltarget устарел в 2001 году

3r0jan
03.02.2007, 13:38
с именами боксов я разобрался только вот непойму почему несколько боксов активируется при нажатии .. надо чтоб было активен либо один либо другой :(

Nirth
03.02.2007, 14:00
Не знаю, в моем примере только один =)

3r0jan
03.02.2007, 14:11
вот именно в твоём примере несколько раз нажимаю на кнопку и несколько боксов активируется )
если один раз нажать то один бокс а потом ещё потом ещё если потом попадает рандом на активный бокст то он диактивируется ... а надо если один активен остальные неактивны

Nirth
03.02.2007, 14:12
эээ значит я тебя не понимаю.

Можешь расписать пошагово пример, или сделать анимацию, я не понимаю что нужно в результате.

3r0jan
03.02.2007, 14:21
описываю есть пять боксов к примеру
я нажимаю на кнопку один из них рандомно активируется
нажимаю на кнопку ещё раз тот что был активен деактивируется и активируется рандомно другой результат при каждом нажатии на кнопку один из пяти боксов активен остальные не активны

ну вот типа должно быть понятно )

должно получится чтото типа этого

http://www.heavenlyknights.ru/gener.swf

Nirth
03.02.2007, 14:31
Ясно, значит в моем методе просто нужно дописать деселект перед выбором чек бокса. ты не можешь этого сделать?

3r0jan
03.02.2007, 14:35
мои умения которые я пробывал не помогли )

Nirth
03.02.2007, 14:38
import mx.controls.Button;
import mx.controls.CheckBox;

var checkBoxes:Array = new Array();
var button:mx.controls.Button;

function deselectAll():Void
{
for (var i:Number = 0; i < checkBoxes.length; i ++)
{
CheckBox(checkBoxes[i]).selected = false;
}
}

function changeCheckBoxValue(event:Object):Void
{
var maximum:Number = checkBoxes.length;
var index:Number;

do
{
index = Math.floor(Math.random() * maximum);
}
while( checkBoxes[index].selected )

deselectAll();

var cb:CheckBox = CheckBox(checkBoxes[index]);
cb.selected = (cb.selected) ? false : true;
}

function createGUI():Void
{
for ( var i:Number = 0; i < 5; i ++)
{
checkBoxes.push(createClassObject(CheckBox, "cb" + i.toString(),
getNextHighestDepth(),
{_y: i * 23, label: "cb "+ i.toString()} ));
}

button = createClassObject(mx.controls.Button, "button",
getNextHighestDepth(),
{_y: 6 * 23, _width: 140, label: "Change ChechBox"});
button.addEventListener("click", changeCheckBoxValue);
}

createGUI();

Моих знаний не хватает понять что у вас в исходнике, и мало вероятно я разберусь когда нибудь в вашем коде. сделал по своему.

3r0jan
03.02.2007, 14:41
и непойму почему когда добавляю создание боксов labelPlacement: right
название бокса получается как то толи под самим боксом толи вопще непонятно закрывается чтоли боксом

3r0jan
03.02.2007, 14:42
во ) вот это то что надо ))) спасибо огроменное ) буду пытаться переварить )

Nirth
03.02.2007, 14:43
Хм, они по дефолту справа...

Nirth
03.02.2007, 14:44
Значение должно быть строкой кстати.

3r0jan
03.02.2007, 15:30
а почему вот так не работает ?
var names = ["Головы, груди", "Груди, живота", "Живота, пояса", "Пояса, ног", "Ног, Головы"];
import mx.controls.Button;
import mx.controls.CheckBox;
var checkBoxes:Array = new Array();
var checkBoxes2:Array = new Array();
var button:mx.controls.Button;
var align1 = "left";
var align2 = "right";
function deselectAll():Void {
for (var i:Number = 0; i<checkBoxes.length; i++) {
CheckBox(checkBoxes[i]).selected = false;
}
}
function changeCheckBoxValue(event:Object):Void {
var maximum:Number = 5;
var index:Number;
do {
index = Math.floor(Math.random()*maximum);
} while (checkBoxes[index].selected);
deselectAll();
var cb:CheckBox = CheckBox(checkBoxes[index]);
cb.selected = (cb.selected) ? false : true;
}
function changeCheckBoxValue2(event:Object):Void {
var maximum2:Number = 5;
var index2:Number;
do {
index2 = Math.floor(Math.random()*maximum2);
} while (checkBoxes2[index2].selected);
deselectAll();
var cbb:CheckBox = CheckBox(checkBoxes2[index2]);
cbb.selected = (cbb.selected) ? false : true;
}
function createGUI():Void {
// удары
for (var i:Number = 0; i<5; i++) {
checkBoxes.push(createClassObject(CheckBox, "cb"+i.toString(), getNextHighestDepth(), {_y:i*23, _width:140, labelPlacement:align1, label:"удар "+names[i.toString()]}));
}
//блоки
for (var b:Number = 0; b<5; b++) {
checkBoxes.push(createClassObject(CheckBox, "cbb"+b.toString(), getNextHighestDepth(), {_y:b*23, _x:160, _width:140, labelPlacement:align2, label:"блок "+names[b.toString()]}));
}
button = createClassObject(mx.controls.Button, "button", getNextHighestDepth(), {_y:6*23, _x:140, _width:140, label:"Change ChechBox"});
button.addEventListener("click", changeCheckBoxValue);
button.addEventListener("click", changeCheckBoxValue2);
}
createGUI();
левая колонка боксов работает а правая колонка нет

Nirth
03.02.2007, 16:10
import mx.controls.Button;
import mx.controls.CheckBox;

var names = ["Головы, груди", "Груди, живота", "Живота, пояса", "Пояса, ног", "Ног, Головы"];

var leftCheckBoxes:Array = new Array();
var rightCheckBoxes:Array = new Array();
var button:mx.controls.Button;

function deselectAll(checkBoxArray:Array):Void
{
for (var i:Number = 0; i<checkBoxArray.length; i++)
{
CheckBox(checkBoxArray[i]).selected = false;
}
}

function changeCheckBoxValue(checkBoxArray:Array):Void
{
var maximum:Number = checkBoxArray.length;
var index:Number;

do
{
index = Math.floor(Math.random()*maximum);
}
while (checkBoxArray[index].selected);

deselectAll(checkBoxArray);

var cb:CheckBox = CheckBox(checkBoxArray[index]);
cb.selected = (cb.selected) ? false : true;
}

function onButtonClick(event:Object):Void
{
changeCheckBoxValue(leftCheckBoxes);
changeCheckBoxValue(rightCheckBoxes);
}

function createCheckBoxes(x:Number, align:String,
prefix:String, labels:Array):Array
{
var result:Array = new Array();

for (var i:Number = 0; i < labels.length; i ++)
{
result.push(createClassObject(CheckBox, "cb"+i.toString(),
getNextHighestDepth(),
{_x: x, _y:i*23, _width:140, labelPlacement:align,
label:prefix + " " + names[i]}));
}

return result;
}

function createGUI():Void
{
leftCheckBoxes = createCheckBoxes(0, "right", "удар", names);
rightCheckBoxes = createCheckBoxes(150, "left", "блок", names);

button = createClassObject(mx.controls.Button, "button", getNextHighestDepth(), {_y:6*23, _x:140, _width:140, label:"Change ChechBox"});
button.addEventListener("click", onButtonClick);
}

createGUI();

Потому что пишешь такой код, в котором разобраться только под обкуркой можно

3r0jan
03.02.2007, 16:21
вот супер .... спасибо прибольшое :drinks: