PDA

Просмотр полной версии : Неправильно загружается swf из внешнего класса


Emz
27.02.2010, 12:24
В файле my.swf cоздаю на сцене мувиклип с именем mc1.
Во внешнем файле *.as пишу

...
loadMovie("another.swf", _root.mc1); //another.swf - подгружаемая swf-ка

another.swf подгружается, но судя по всему не в _root.mc1, а где-то в своем особенном месте.
Что я неправильно делаю?

in4core
27.02.2010, 13:46
Используйте класс мувиклиплоадер это вопервых. LoadMovie уже устарел. В описании тему написано слово ВНЕШНИЙ класс. что имелось ввиду ? реально класс или же Include файл ? Если класс то код в студию. Если инклуд то все верно. А если флешка подгружается из под дочернего подгруженного клипа, то поставьте права на lockroot.
И наконоец чтобы не травить себе мозг юзайте ( если у вас в мувике есть еще клипы) trace(mc1.CLIPINSIDE) - и увидите явный путь подгрузки.

Вот тебе простейший пользовательский класс лоадера. пользуйся. если знаешь что такое классы и как их юзать ) ( а я думаю знаешь раз в ТЕМЕ слово КЛАСС проскользнуло).

class com.streamLoader extends MovieClip {

var _obj:Object;
var _clipLoader:MovieClipLoader;
var _loader;
public function streamLoader() {
}

private function _loadContent(_content, _location, _func, _ld) {

_loader = _ld;
if (_content != "undefined.swf") {
_obj = new Object();
_clipLoader = new MovieClipLoader();
_clipLoader.addListener(_obj);
_obj.onLoadProgress = mx.utils.Delegate.create(this, _loadProgress);
_obj.onLoadInit = _func;
_obj.onLoadStart = _start;
_clipLoader.loadClip(_content,_location);
}
}
private function _loadProgress(target_mc:MovieClip, loaded:Number, total:Number):Void {
var percent:Number = Math.floor(loaded/total*100);
if (typeof _loader == "movieclip") {
_loader.gotoAndStop(percent);
} else {
_loader.text = percent;
}
if (loaded/total == 1) {
_loader.text = "";

}
}
function _start(target_mc:MovieClip) {
target_mc._visible = false;
}
}//end of class

Emz
27.02.2010, 15:27
Класс - имелось ввиду реально класс, а не Include файл. Но только начинаю изучать, как ими пользоваться :)


public function streamLoader() {
//Почему тут ничего нет?
}

in4core
27.02.2010, 15:56
А там ничего и ненадо, я так решил для себя в этот раз)))

Подгружаем так
var dd = new com.streamLoader();
dd._loadContent("MYSWF",myClipPath,FUNCTION_AFTER_LOADED,CLIPLOADER);

Заметь что при старте видимость подгружаемого клипа отключается , поэтому при завершении загрузки не забудь включить видимость обратно

П.с. ***public function streamLoader() {
//Почему тут ничего нет?
}*** //можешь вооюще удалить )

Emz
27.02.2010, 16:04
ух, попробую это все осилить :) спасибо!

in4core
27.02.2010, 16:11
Да че тут сложного! ))) Писать Мувиклип классы это все равно что писать коды в кадрах. Сложно писать static классы, там как минимум надо логику и матиматику знать хорошо)