Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChild во внешнем as файле (http://www.flasher.ru/forum/showthread.php?t=141843)

inMashine 06.07.2010 14:42

addChild во внешнем as файле
 
Добрый день.
Пытаюсь написать свой класс.
Если в панель "actions" вставить следующий код:
Код AS3:

                        var loader:Loader = new Loader();
                        var url:URLRequest = new URLRequest("image.jpg");
                        loader.load(url);
                        loader.x = 100;
                        loader.y = 100;
                        addChild(loader);


то все прекрасно работает.
Этот же код переписываю в отдельный класс(LoadPictures.as):
Код AS3:

package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
 
        public class LoadPictures extends Sprite
        {
                public function LoadPictures():void
                {
                        var loader:Loader = new Loader();
                        var url:URLRequest = new URLRequest("image.jpg");
                        loader.load(url);
                        loader.x = 100;
                        loader.y = 100;
                        addChild(loader);
                }
        }
}

В fla файле пишу следующее:
Код AS3:

var picture:LoadPictures = new LoadPictures();

В результате ошибок никаких не вылазит, но и картинка не отображается.
По всей видимости я что то упустил.
Если не сложно подскажите плз что именно надо дописать в этот класс, дабы он отображал картинку.

leofit 06.07.2010 14:44

А вы класс вызываете на исполнение вообще?

inMashine 06.07.2010 14:47

Как я понимаю конструктор это как раз и делает.
Я создаю экземпляр, а его конструктор выполняет отображение.
Как то так вроде.

leofit 06.07.2010 14:54

Да, не углядел =)
Сделайте что то вроде
Код AS3:

var picture:LoadPictures = new LoadPictures();
addChild(picture);


iNils 06.07.2010 14:55

Сделайте loader переменной класса, а не локальной.

inMashine 06.07.2010 14:56

leofit,
Да.
Так работает.
Спасибо.

Вот что у меня получилось в итоге (картинка отображается без того что бы прописывать addChild в fla файле):
Код AS3:

package
{
        import flash.display.Sprite;
        import flash.display.Loader;
        import flash.display.Bitmap;
        import flash.events.Event;
        import flash.net.URLRequest;
 
        public class LoadPicture extends Sprite
        {
                private var loader:Loader = new Loader();
                private var url:URLRequest = new URLRequest("image.jpg");
                private var image:Bitmap = new Bitmap;
 
                public function LoadPicture():void
                {
                        this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.drawImage);
                        this.loader.load(url);
                }
 
                private function drawImage(event:Event):void
                {
                        this.image = Bitmap(event.target.content);
                        this.addChild(image);
                }
        }
}



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

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