PDA

Просмотр полной версии : доступ к дочерним мувикам из методов класса, наследующего MovieClip


SanX
20.01.2008, 21:50
добрый день/ночь!

помогите плиз, и если че - ногами сильно не бейте :)
AS2, флеш мх 2004 (7)
начал переходить на красивое ООП (раньше писал тупо в фреймах кнопках и т.д.), и вот сразу же на такую фигню напоролся:

// в принципе, стандартный прелоадер, но оформленный в виде класса,
// и вынесенный в отдельный AS-файл
class preloader_cls extends MovieClip
{
public function preloader_cls()
{
super();
this.onEnterFrame = update;
}

public function update()
{
var bytesLoaded = _root.getBytesLoaded();
var bytesTotal = _root.getBytesTotal();

this.preloaderBar_mc._xscale=(bytesLoaded/bytesTotal)*100;

if (bytesLoaded != bytesTotal)
{
gotoAndPlay(1);
}
else
{
_parent.play();
}
}
}
Теперь ассоциируем этот класс с символом в library (через linkage properties, в поле AS2 class пишем "preloader_cls"), внутри которого есть дочерний мувик preloaderBar_mc (ну эта типа прогрессбар загрузки).

дык вот, пока этот код был написан в первом фрейме (без описания класса, просто с привязкой к событиям) - все работало,
НО после того, как я вынес это добро в отдельный файл (и описал как класс) - компилер стал материтсья на выделенную строчку вот такими словами: There is no property with the name 'preloaderBar_mc'.

вопрос - с чего бы это? :)

я понимаю, что в коде это свойство в классе не указано, НО код же вроде с оглядкой на МОЙ мувик должен компилироваться, правда?

заранее спасибо :)

DarkLight
20.01.2008, 22:29
Либо укажите это свойство в классе, либо сделайте класс dynamic
P. S. В ActionScript классы принято называть с большой буквы

iNils
20.01.2008, 22:30
После описания класcа надо описать свойство
private var preloaderBar_mc:Movieclip;
А название класс пишется с большой буквы, таким образом сразу становится понятно, что это класс, и суффуксы типа _cls не нужны:
class Preloader extends MovieClip

SanX
20.01.2008, 22:41
оппа, как все просто!

большое пасиба!
отдельное пасиба за оперативность :)