Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   ChekBox true или false (http://www.flasher.ru/forum/showthread.php?t=91579)

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:


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

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