Показать сообщение отдельно
Старый 14.06.2007, 19:35
cherno_belaya вне форума Посмотреть профиль Отправить личное сообщение для cherno_belaya Найти все сообщения от cherno_belaya
  № 1  
Ответить с цитированием
cherno_belaya

Регистрация: Jun 2007
Сообщений: 24
Tip тест, массивы

делаю простенький тест из двух вопросов, в каждом вопросе по четыре варианта ответа, выбрать можно только один. первый вопрос определяет цвет фигуры [ синий, красный, желтый, зеленый], второй - тип фигуры [ квадрат, круг, треуг, сектор], в идеале хочется еще третий пункт - размер, но с этим пока не заморачиваюсь, поскольку и с первыми двумя не все гладко. в итоге рисуется определенная фигура заданного размера и цвета.

вот мое извращение
Код:
a=0;
b=0;
c=0;
d=0;
vopr.stop();
onEnterFrame = function(){
			vopr.stop();
			}
eky.onPress = function(){
		vopr.play();
		}
//var a1rr:Array = [vopr.vopr1.q1,vopr.vopr1.q2,vopr.vopr1.q3,vopr.vopr1.q4];
//var a2rr:Array = [vopr.vopr2.q1,vopr.vopr2.q2,vopr.vopr2.q3,vopr.vopr2.q4];
//var a3rr:Array = [vopr.vopr3.q1,vopr.vopr3.q2,vopr.vopr3.q3,vopr.vopr3.q4];
if (vopr.vopr1.q1.selected == true){
	vopr.vopr1.q2.selected = false;
	vopr.vopr1.q3.selected = false;
	vopr.vopr1.q4.selected = false;
	a=1;}// синий
	
if (vopr.vopr1.q2.selected == true){
	vopr.vopr1.q3.selected = false;
	vopr.vopr1.q4.selected = false;
	vopr.vopr1.q1.selected = false;
	a=2;} //красный
	
if (vopr.vopr1.q3.selected == true){
	vopr.vopr1.q4.selected = false;
	vopr.vopr1.q2.selected = false;
	vopr.vopr1.q1.selected = false;
	a=3;} //зеленый
	
if (vopr.vopr1.q4.selected == true){
	vopr.vopr1.q1.selected = false;
	vopr.vopr1.q2.selected = false;
	vopr.vopr1.q3.selected = false;
	a=4;}// желтый
    //для второго вопроса:
if (vopr.vopr2.q1.selected == true){
	vopr.vopr2.q2.selected = false;
	vopr.vopr2.q3.selected = false;
	vopr.vopr2.q4.selected = false;
	b=1;}// круг
	
if (vopr.vopr2.q2.selected == true){
	vopr.vopr2.q3.selected = false;
	vopr.vopr2.q4.selected = false;
	vopr.vopr2.q1.selected = false;
	b=2;}//треугольник
	
if (vopr.vopr2.q3.selected == true){
	vopr.vopr2.q4.selected = false;
	vopr.vopr2.q2.selected = false;
	vopr.vopr2.q1.selected = false;
	b=3;}// квадрат
	
if (vopr.vopr2.q4.selected == true){
	vopr.vopr2.q1.selected = false;
	vopr.vopr2.q2.selected = false;
	vopr.vopr2.q3.selected = false;
	b=4;}//сектор
	
	// для третьего вопроса
if (vopr.vopr3.q1.selected == true){
	vopr.vopr3.q2.selected = false;
	vopr.vopr3.q3.selected = false;
	vopr.vopr3.q4.selected = false;
	c=1;}
	
if (vopr.vopr3.q2.selected == true){
	vopr.vopr3.q3.selected = false;
	vopr.vopr3.q4.selected = false;
	vopr.vopr3.q1.selected = false;
	c=2;}
	
if (vopr.vopr3.q3.selected == true){
	vopr.vopr3.q4.selected = false;
	vopr.vopr3.q2.selected = false;
	vopr.vopr3.q1.selected = false;
	c=3;}
	
if (vopr.vopr3.q4.selected == true){
	vopr.vopr3.q1.selected = false;
	vopr.vopr3.q2.selected = false;
	vopr.vopr3.q3.selected = false;
	c=4}

lineStyle (0, 0, 0);// определяет вид линии рисуемой с помощью MovieClip.beginFill() или MovieClip.beginGradientFill().//

if (a==2, b==1){ beginFill (0xFF0000);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
curveTo(600, 300, 500, 300);
curveTo(400, 300, 400, 400);
curveTo(400, 500, 500, 500);
endFill();}
if (a==2, b==2){ beginFill (0xFF0000);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(500, 500);
endFill();}
if (a==2, b==3){ beginFill (0xFF0000);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(400, 400);
lineTo(500, 500);
endFill();}
if (a==2, b==4){ beginFill (0xFF0000);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
lineTo(600, 400);
lineTo(400, 300);
endFill();}

if (a==3, b==1){beginFill (0x00FF00);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
curveTo(600, 300, 500, 300);
curveTo(400, 300, 400, 400);
curveTo(400, 500, 500, 500);
endFill();}
if (a==3, b==2){beginFill (0x00FF00);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(500, 500);
endFill();}
if (a==3, b==3){beginFill (0x00FF00);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(400, 400);
lineTo(500, 500);
endFill();}
if (a==3, b==4){beginFill (0x00FF00);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
lineTo(600, 400);
lineTo(400, 300);
endFill();}

if (a==4, b==1){ beginFill(0xFFFF00);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
curveTo(600, 300, 500, 300);
curveTo(400, 300, 400, 400);
curveTo(400, 500, 500, 500);
endFill();}
if (a==4, b==2){ beginFill(0xFFFF00);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(500, 500);
endFill();}
if (a==4, b==3){ beginFill(0xFFFF00);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(400, 400);
lineTo(500, 500);
endFill();}
if (a==4, b==4){ beginFill(0xFFFF00);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
lineTo(600, 400);
lineTo(400, 300);
endFill();}

if (a==1, b==1){ beginFill (0x0000FF);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
curveTo(600, 300, 500, 300);
curveTo(400, 300, 400, 400);
curveTo(400, 500, 500, 500);
endFill();}
if (a==1, b==2){ beginFill (0x0000FF);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(500, 500);
endFill();}
if (a==1, b==3){ beginFill (0x0000FF);
moveTo(500, 500);
lineTo(600, 400);
lineTo(500, 300);
lineTo(400, 400);
lineTo(500, 500);
endFill();}
if (a==1, b==4){ beginFill (0x0000FF);
moveTo(500, 500);
curveTo(600, 500, 600, 400);
lineTo(600, 400);
lineTo(400, 300);
endFill();}
в коде мне не нравится 1. его громозкость, 2. то что галочки в чекбоксах убираются не автоматически при выборе другого чекбокса. 3. совсем идиотская ошибка в конце, при запуске выбирается только последний цвет ( знаю, где-то здесь попадалось, в чем ошибка, но уже не помню что и как)

вопросы у меня такие
1. как сделать через массивы
2. и есть ли другой способ сделать код более компактным.


Последний раз редактировалось cherno_belaya; 14.06.2007 в 21:38.