2014-12-22 3 views
0

Я честно не знаю, как эта функция называется (и я уверен, что это простая вещь), ни то, как я могу эффективно ее искать (я не нашел ее когда я googled это).Переместить последовательность переменных в Haxe

У меня есть набор строковых переменных в Haxe называется

public static var variable01:String; 
public static var variable02:String; 
public static var variable03:String; 

public static function TextContent() 
{ 
    variable01 = new String("abc"); 
    variable02 = new String("def"); 
    variable03 = new String("ghi"); 
} 

и функция, которая показывает текст в переменной

_message = variable01; 
_Dialogue = new FlxText(60, 400, 100, _message); 

Когда пользователь нажимает на экран, я хочу переменная на дисплее изменится на следующую. Есть ли способ просто изменить номер переменной? Мне нужно изменить текст переменной для другого диалога, потому что тогда будет другой набор переменных с одинаковым шаблоном (text01, text02, text03 и т. Д.)

+0

В вашем коде есть опечатка. Вы никогда не инициализируете переменную03, и вы дважды инициализируете переменную02. (Это еще одна причина для использования массивов.) –

ответ

5

Когда есть «набор переменных», это почти всегда отличный вариант использования Array. Чтобы запомнить, что представляет собой текущая отображаемая переменная, нам нужна дополнительная целочисленная переменная (current ниже) для хранения индекса массива.

public static var variables:Array<String> = ["abc", "def", "ghi"]; 
public static var current:Int = 0; 

//initialize 
_Dialogue = new FlxText(60, 400, 100, variables[current]); 


//when user clicks 
++current; 
if (current >= variables.length) { //we don't have that many variables 
    current = 0; //reset it to the first one 
} 
_Dialogue.text = variables[current]; 
+1

или если вы хотите иметь его немного короче: _dialogue.text = variables [current ++% variables.length] –

 Смежные вопросы

  • Нет связанных вопросов^_^