Я - нуб, играющий с actionScript, но я чувствую, что этот вопрос - основной вопрос кодирования Мой проект похож на эту картинку .
У меня есть четыре квадрантных области (красная, синяя, желтая и зеленая), в которые я добавляю текстовые кнопки в каждую область с одним словом в каждой кнопке. В каждом разделе есть 16 слов, которые добавляются из 4 массивов с предустановленными словами (redWordArray, greenWordArray, yellowWordArray, blueWordArray). При нажатии текстовая кнопка светится с помощью светящегося фильтра, и слово добавляется в другой массив для сбора данных. Например, красное слово при нажатии добавляется в красный массив (redChosenArray). При повторном нажатии на слово оно удаляет фильтр свечения и удаляется из выбранного массива.
Я обнаружил, что моя работа медленная, и мне интересно, правильно ли я добавляю и удаляю слова. Это мои функции для добавления фильтров свечения и выбранного слова в массив. Мне бы очень хотелось, чтобы вы поделились своими лучшими практиками кодирования, так как я уверен, что это беспорядок!
Спасибо!
</p>
<code>function selectWord(event:MouseEvent):void
{
var tempWord:String = event.currentTarget.mood.text;
var tempArray:Array;
if (event.currentTarget.clicked == false)
{
event.currentTarget.filters = filterArray;
event.currentTarget.clicked = true;
tempArray = addToArray(tempWord)
tempArray.push(tempWord);
trace(redChosen);
trace(blueChosen);
trace(yellowChosen);
trace(greenChosen);
trace("");
}else if(event.currentTarget.clicked == true)
{
event.currentTarget.filters = emptyFilterArray;
event.currentTarget.clicked = false;
removeMoodWord(tempWord);
trace(redChosen);
trace(blueChosen);
trace(yellowChosen);
trace(greenChosen);
trace("");
}
}
function addToArray(moodWord:String):Array
{
var wordFound:Boolean = false;
var allWords:int = 16;
var chosenArray:Array;
while (!wordFound)
{
for (var h:int = 0; h < allWords; h++)
{
if (moodWord == redWords[h])
{
chosenArray = redChosen;
wordFound = true;
}else if (moodWord == yellowWords[h])
{
chosenArray = yellowChosen
wordFound = true;
}else if (moodWord == greenWords[h])
{
chosenArray = greenChosen
wordFound = true;
}else if (moodWord == blueWords[h])
{
chosenArray = blueChosen
wordFound = true;
}
}
}
return chosenArray;
}
function removeMoodWord(moodWord:String):void
{
if (redChosen.indexOf(moodWord) >= 0)
{
redChosen.splice(redChosen.indexOf(moodWord), 1);
}else if (blueChosen.indexOf(moodWord) >= 0)
{
blueChosen.splice(blueChosen.indexOf(moodWord), 1);
}else if (yellowChosen.indexOf(moodWord) >= 0)
{
yellowChosen.splice(yellowChosen.indexOf(moodWord), 1);
}else if (greenChosen.indexOf(moodWord) >= 0)
{
greenChosen.splice(greenChosen.indexOf(moodWord), 1);
}
i fee}
</code>