Actionscript 3.0 Строка с форматом?

Ответ на документацию для Object.wait (long milis)

Нить также может проснуться без уведомления, прерывания или тайминга, так что - вызвало ложное пробуждение. Хотя это редко случается на практике, приложения должны защищать его, проверяя условие, которое должно было вызвать пробуждение потока, и продолжая ждать, если условие не будет выполнено. Другими словами, ожидания всегда должны встречаться в циклах, таких как:

blockquote>
 synchronized (obj) {
     while ()
         obj.wait(timeout);
     ... // Perform action appropriate to condition
 }

(дополнительную информацию по этому вопросу см. В разделе 3.2.3 в статье «Параллельные действия Дуга Ли» Программирование на Java (второе издание) »(Addison-Wesley, 2000) или Пункт 50 в« Руководстве по эффективному языку программирования Java »Джошуа Блоха (Addison-Wesley, 2001).

blockquote>

23
задан TheDarkIn1978 19 February 2010 в 20:54
поделиться

3 ответа

Ответы на на этот похожий вопрос предлагают использовать класс Formatter или StringUtil.substitute () .

Последний выглядит самым простым; в вашем случае вы бы использовали его так:

var str:String = "One {0} consists of {1} consecutive {2}";
var newString:String = StringUtil.substitute(str, myObject, myNumber, myString);

substitute() должен автоматически привести свои аргументы к String, но я не уверен, что, как в вашем коде, вы можете привести MovieClip (myObject) в виде строки.

Другой хороший вариант, особенно если вы использовали printf в других языках программирования, это сторонняя функция printf-as3 .

47
ответ дан Community 19 February 2010 в 20:54
поделиться

Приведение объектов к строкам

Метод toString () определен в классе Object. Таким образом, для всех объектов этот метод определен для них. Поэтому вызов myObject.toString () обычно даст вам то, что вы ищете. Некоторые объекты определяют дополнительные методы, такие как date.getHours (), которые возвращают строковые описания объекта в формате, отличном от того, который предоставляется getString ().

Для нативных типов, таких как int, вы можете приводить с использованием String (myInt).

Объединение строк вместе

Затем можно сложить различные части строки следующим образом:

var myString:String = "There are " + String(24) + " hours in a day."

Надежда, которая помогает, Дейв

1
ответ дан Dave T 19 February 2010 в 20:54
поделиться

Короче, как я бы это сделал, это что-то вроде:

var finalString:String = "One " + myObject + " consists of " + myNumber + " " + myString;

Одинарная или двойная кавычка инициирует строковый литерал. Если вы используете символ + для добавления чего-либо к строковому литералу, он автоматически вызовет toString () для этого объекта.

myObject вернет [Object MovieClip], хотя. Что вы хотите сделать, так это создать собственный класс, который расширяет MovieClip, а затем переопределяет защищенный метод toString (), чтобы возвращать любую строку, которую вы хотите, чтобы он выплевывал.

Надеюсь, что это помогает!

0
ответ дан Myk 19 February 2010 в 20:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: