Ответ на документацию для 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>
Ответы на на этот похожий вопрос предлагают использовать класс 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 .
Приведение объектов к строкам
Метод toString () определен в классе Object. Таким образом, для всех объектов этот метод определен для них. Поэтому вызов myObject.toString () обычно даст вам то, что вы ищете. Некоторые объекты определяют дополнительные методы, такие как date.getHours (), которые возвращают строковые описания объекта в формате, отличном от того, который предоставляется getString ().
Для нативных типов, таких как int, вы можете приводить с использованием String (myInt).
Объединение строк вместе
Затем можно сложить различные части строки следующим образом:
var myString:String = "There are " + String(24) + " hours in a day."
Надежда, которая помогает, Дейв
Короче, как я бы это сделал, это что-то вроде:
var finalString:String = "One " + myObject + " consists of " + myNumber + " " + myString;
Одинарная или двойная кавычка инициирует строковый литерал. Если вы используете символ + для добавления чего-либо к строковому литералу, он автоматически вызовет toString () для этого объекта.
myObject вернет [Object MovieClip], хотя. Что вы хотите сделать, так это создать собственный класс, который расширяет MovieClip, а затем переопределяет защищенный метод toString (), чтобы возвращать любую строку, которую вы хотите, чтобы он выплевывал.
Надеюсь, что это помогает!