Я создал несколько квадратов и заполнил их цифрами из массива. Так же создал кнопки при щелчке на которых к переменной 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();