PDA

Просмотр полной версии : Обращение к обьектам библиотеки из класса


VirRaa
22.11.2009, 20:45
Добрый день.

Начал изучать ActionScript 3.0 (с 2-м не знаком), для более лучшего усваивания информации вместе с теорий сразу же занимаюсь практикой. Столкнулся с проблемой, которую самостоятельно пока решить не могу.

Есть "сцена", у неё есть основной класс, допустим:


package blahPlayer {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.media.Video;

public class Main extends Sprite {
private var Player:Object;

public function Main():void {
this.Player = new VPlayer();
}
}
}


так вот мне надо из класса Vplayer, объект которого создается в классе Main, обратиться к обьекту из библиотеки, пусть это будет "movie clip" или же "button" не важно. Как это сделать? Подскажите пожалуйтса.

DarkLight
22.11.2009, 20:47
То, что лежит в библиотеке, не существует в виде экземпляров. Чтобы достучаться до них, прописываем в Linkage у символа Class, затем создаем новый экземпляр класса через new, как обычно. Ну и при необходимости добавляем на сцену через addChild, чтобы его было видно)

VirRaa
22.11.2009, 21:01
Сделал так, как сказал DarkLight. В библиотеке есть "movie clip" - allTime. В нем лежит dynamic text. Ситуация следующая:

this.allTime = new AllTime();
addChild(this.allTime);

На экране ничего не появляется, хотя там по умолчанию уже есть текст. Пытаюсь его изменить:

this.allTime.text = 'test';

Получаю следующую ошибку:

.elements.time.AllTime.
at buPlayer::VPlayer/initPlayer()
at buPlayer::VPlayer$iinit()
at buPlayer::Main$iinit()

Помогите разобраться пожалуйста.

Добавлено через 4 часа 37 минут
Вопрос, что должно быть внутри класса allTime? Сейчас там примерно так:

package blahPlayer.elements.time {
import flash.display.MovieClip

public class AllTime extends MovieClip {
public function AllTime():void {
super();
}
}
}

djc
20.01.2010, 00:51
хмм.. странно както ты его создаешь.. попробуй так

var all:allTime = new AllTime();
this.addChild(all);


а достучаться ты и не сможешь...
ты указываешь
this.allTime.text = 'test';

НО ты ж сам говоришь что ВНУТРИ мувиклипа лежит динамикТекст. значит должно быть так
this.all.SOME DYnamic TEXT.text='test';
где "SOME DYnamic TEXT" - это Instance Name у твоего динамиктекста котрый внути мувика

cleptoman
20.01.2010, 12:19
чтоб достучаться до динамик текста, то он должен быть как паблик свойство, если класс не динамический.