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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.07.2018, 17:24
Alexey25 вне форума Посмотреть профиль Отправить личное сообщение для Alexey25 Найти все сообщения от Alexey25
  № 1  
Ответить с цитированием
Alexey25

Регистрация: Mar 2016
Сообщений: 34
По умолчанию Проверка массива на повторные цифры и выделение их цветом

Я создал несколько квадратов и заполнил их цифрами из массива. Так же создал кнопки при щелчке на которых к переменной number будет присвоена цифра данной кнопки. Потом при щелчке на квадрате, автоматически в текстовое поле квадрата будет занесено значение переменой number. Делаю проверку на повтор цифр если цифры повторяются нужно их перекрасить в красный цвет и значению horizontal_count прибавить единицу. Проблема заключается в том, что если ставить цифру после повторяющей то предыдущая цифра перекрашивается. Если за повторяющейся, то перекрашивается та которую только, что поставил. Как сделать так, чтобы ту которую поставил вообще не перекрашивалась, а цветом выделялись только похожие цифры.
Вот мой код: test_arr.rar
Код AS3:
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFormat;
 
var tl:Object = {};
var tf:Object = {};
var arr = [0,2,0,4,5,6,0,8,0];
//Цифра для проверки
 
var number = 0;
var horizontal_count = 0;
 
//Создание тайлов
function createTile()
{
	for(var i = 0; i < 9; i++)
	{
		var name = "t_"+i;
			tl[name] = new tile();
			tf[name] = new TextField();
			addChild(tl[name]);
			tl[name].addChild(tf[name]);
			tl[name].x = 150+i * 25;
			tl[name].y = 150;
			tl[name].idi = i;
			tf[name].x = -12.5;
			tf[name].y = -12.5;
			tl[name].gotoAndStop(1);
			if(arr[i]!=0)
			{
 
				tf["t_"+i].text = arr[i];
		    }
			tl[name].addEventListener(MouseEvent.CLICK,onClick);
 
	}
 
	btn1.txt.text = "1";
	btn2.txt.text = "2";
	btn3.txt.text = "3";
	btn4.txt.text = "4";
	btn5.txt.text = "5";
	btn6.txt.text = "6";
	btn7.txt.text = "7";
	btn8.txt.text = "8";
	btn9.txt.text = "9";
	btn1.addEventListener(MouseEvent.CLICK, onNum1Click);
	btn2.addEventListener(MouseEvent.CLICK, onNum2Click);
	btn3.addEventListener(MouseEvent.CLICK, onNum3Click);
	btn4.addEventListener(MouseEvent.CLICK, onNum4Click);
	btn5.addEventListener(MouseEvent.CLICK, onNum5Click);
	btn6.addEventListener(MouseEvent.CLICK, onNum6Click);
	btn7.addEventListener(MouseEvent.CLICK, onNum7Click);
	btn8.addEventListener(MouseEvent.CLICK, onNum8Click);
	btn9.addEventListener(MouseEvent.CLICK, onNum9Click);
 
}
function onNum1Click(e:Event)
{
	number = 1;
}
function onNum2Click(e:Event)
{
	number = 2;
}
function onNum3Click(e:Event)
{
	number = 3;
}
function onNum4Click(e:Event)
{
	number = 4;
}
function onNum5Click(e:Event)
{
	number = 5;
}
function onNum6Click(e:Event)
{
	number = 6;
}
function onNum7Click(e:Event)
{
	number = 7;
}
function onNum8Click(e:Event)
{
	number = 8;
}
function onNum9Click(e:Event)
{
	number = 9;
}
function onClick(e:Event)
{
	var bool = true;
	var clicked_btn:MovieClip = e.currentTarget as MovieClip;
 
	if(arr[clicked_btn.idi]==0)
	{
		tf["t_"+clicked_btn.idi].text = number;
	}
	horizontal_count = 0;
	for(var i = 0; i < 9-1; i++)
	{
		for(var j = i+1; j < 9; j++)
		{
			var tfNameFormat2:TextFormat = new TextFormat();
			if(tf["t_"+i].text == tf["t_"+j].text)
			{
				if(tf["t_"+i].text!="")
				{
					horizontal_count++;
				}
				var name2 = "t_"+i;
				tfNameFormat2.color = 0xFF0000;
				tf[name2].setTextFormat(tfNameFormat2)
			}
		}
	}
	trace(horizontal_count);
}
createTile();

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

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

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


 


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


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