PDA

Просмотр полной версии : как добраться до объекта в определенном фрейме?


Felicast
26.06.2008, 14:43
у меня есть класс, унаследованный от MovieClip. В дизайне мувиклип имеет 4 кадра. в каждом из них лежит текстовое поле.
как мне в конструкторе моего класса добраться до этих текстовых полей?

MrPoma
26.06.2008, 16:14
Сначала надо перейти на определенный фрейм.
[имя текстового поля].text = 'text';

В теле пакета написать: import flash.text.TextField;

Felicast
26.06.2008, 18:04
Сначала надо перейти на определенный фрейм.
[имя текстового поля].text = 'text';

В теле пакета написать: import flash.text.TextField;
это все понятно. но когда я перехожу на нужный фрейм в конструкторе (gotoAndStop(2)), то там текстовое поле еще не создано. getChildAt() возвращает null

this.gotoAndStop(2);
trace(this.getChildAt(0)); //[object Shape]
trace(this.getChildAt(1)); //null (здесь мое текстовое поле)

как я понимаю оно просто еще не создалось.
если этот код выполнить не к конструкторе, все нормально работает.

silin
26.06.2008, 21:39
>>как я понимаю оно просто еще не создалось.

выходит, что и не создалось
смотреть можно в Event.ACTIVATE
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.TextField;

public class Test extends MovieClip
{
var t1:TextField;
var t2:TextField;
public function Test()
{
trace( "tf : " + tf1.text );
gotoAndStop(2);
addEventListener(Event.ACTIVATE,activateHandler);
}


private function activateHandler(e:Event):void
{
trace( "tf : " + tf2.text );
}
}
}
хотя непонятно, что это дает, да сам подход с дизайном в кадрах тоже

Felicast
26.06.2008, 23:31
я просто хочу сделать кнопку с надписью. с SimpleButton тоже самое (правда там объекты есть, но у них нет имен, поэтому обращение к ним затруднительно)
вообще, можно ли как-нибудь получить массив с кадрами (как я понимаю это обычные DisplayObjectContainer)
или я ошибаюсь?