Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Неправильно загружается swf из внешнего класса (http://www.flasher.ru/forum/showthread.php?t=136856)

Emz 27.02.2010 12:24

Неправильно загружается swf из внешнего класса
 
В файле my.swf cоздаю на сцене мувиклип с именем mc1.
Во внешнем файле *.as пишу
Код AS1/AS2:

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

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

in4core 27.02.2010 13:46

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

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

Код AS1/AS2:

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 файл. Но только начинаю изучать, как ими пользоваться :)

Код AS1/AS2:

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


in4core 27.02.2010 15:56

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

Подгружаем так
Код AS1/AS2:

var dd = new com.streamLoader();
dd._loadContent("MYSWF",myClipPath,FUNCTION_AFTER_LOADED,CLIPLOADER);

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

П.с.
Код AS1/AS2:

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


Emz 27.02.2010 16:04

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

in4core 27.02.2010 16:11

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


Часовой пояс GMT +4, время: 03:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.