Форум 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)
-   -   Внешние библиотеки (http://www.flasher.ru/forum/showthread.php?t=119461)

ujim 21.12.2008 15:32

Вложений: 1
Подскажите в чем ошибка.
Почему скомпилированная флешка запускается и проигрывается в стандартном проигрывателе и не хочет запускаться на HTML странице?

Исходники тут:
http://narod.ru/disk/4524184000/libLoader.zip.html

Просмотрел почти весь почти весь форум, решения не нашел. :(

Предположил что моя проблема в неверном перелоадере.

Попытался загружать библиотеки и отслеживать загружен файл или нет
через
Код AS1/AS2:

mclListener.onLoadInit

Возник вопрос.
Аттачить элементы загруженной библиотеки можно только внутри контейнера? или можно влюбой мувик,
как например: я загрузил мувик в _root.Board.image_mc
а приаттачить компоненты хотел бы в _root.mc

dimarik 22.12.2008 02:26

Все нормально работает. Аттачить символы загруженной библиотеки можно только к данному mc-контейнеру (в который загрузили библиотеку) и его детям.

Немного поправленный код. Так, для размышлений.
Код AS1/AS2:

///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C)
//
///////////////////////////////////////////////////////////////////////////////
 
/**
 *  @author                               
 *  @version                        1.0
 *  @langversion                2.0
 *  @playerversion                7.0
 * 
 *  filename: CGameBoard.as
 *
 */

 
class CGameBoard extends MovieClip {
 
        //-------------------------------------------------------------------------
        //
        //  Class's variables
        //
        //-------------------------------------------------------------------------
 
        public static var g:                        CGameBoard = null;
 
        private static var _mcl:                MovieClipLoader = null;
 
        //-------------------------------------------------------------------------
        //
        //  Constructor
        //
        //-------------------------------------------------------------------------
 
        /**
        *  Constructor
        */

        private function CGameBoard () {
                g = this;
                if (_mcl == null) _mcl = new MovieClipLoader();
                this.init();
        }
 
        //-------------------------------------------------------------------------
        //
        //  Intrinsic symbols
        //
        //-------------------------------------------------------------------------
 
        private var addClip:                        MovieClip;
 
        private var attachClip:                        MovieClip;
 
        private var playSound1:                        MovieClip;
 
        private var loadInfo:                        TextField;
 
        //-------------------------------------------------------------------------
        //
        //  Private variables
        //
        //-------------------------------------------------------------------------
 
        private var _s1:                        Sound;
 
        private var _s2:                        Sound;
 
        private var _image_mc:                        MovieClip;
 
        //-------------------------------------------------------------------------
        //
        //  Private methods
        //
        //-------------------------------------------------------------------------
 
        /**
        *
        *  @private
        *
        */

        private function init():Void {
                var app:CGameBoard = this;
                this.addClip.onPress = function() : Void {                       
                        app.loadClipFromLib();
                };
 
                this.attachClip.onPress = function() : Void {                       
                        app.addClipFromLib();
                };
 
                this.playSound1.onPress = function() : Void {                       
                        app.sound1Play();
                };
 
                this._image_mc = this.createEmptyMovieClip("_image_mc", this.getNextHighestDepth());
 
        }
 
        /**
        *
        *  @private
        *
        */

        private function loadClipFromLib () :Void {
                _mcl.addListener(this);
                _mcl.loadClip("lib.swf", _root.mc);
        }
 
        /**
        *
        *  @private
        *
        */

        private function onLoadInit(target_mc:MovieClip):Void {
                _mcl.removeListener(this);
                this.loadInfo.text = "loaded to: " + target_mc;
                this.addClipFromLib();
        }
 
        /**
        *
        *  @private
        *
        */
       
        private function addClipFromLib():Void {
                var clip:MovieClip = _root.mc.createEmptyMovieClip('child', 1).attachMovie("skinView2", "skinView" , 1 );
                this.loadInfo.text += "\nattached to: " + clip._parent;
                //var clip:MovieClip = _root.mc.attachMovie("skinView2", "skinView" , 1 );
        }
 
        /**
        *
        *  @private
        *
        */

        private function sound1Play():Void {
                this._image_mc.start();
        }
 
}

Упоминать _root в классе - моветон. Постарайтесь передать ссылку на него в класс.

ujim 22.12.2008 11:12

Спасибо огромное , буду разбираться

Огромная благодарность dimarik.

Разобрался со своими багами.
Певый исходник не работал у меня, как выяснилось только из-за того, что файлы размещенные локально находились в папке, имя которой содержало недопустимый символ


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

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