Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка изображения в объект (http://www.flasher.ru/forum/showthread.php?t=160677)

1q2w3e4r5t6 15.07.2011 22:36

Загрузка изображения в объект
 
Привет!
Не получается загрузить картинку PNG в программу:
Код AS3:

package Game
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Loader;
        import flash.display.SimpleButton;
        import flash.display.Sprite;
        import flash.net.URLRequest;
 
        public class Button extends Sprite
        {
                private var upState:Bitmap, downState:Sprite, overState:Sprite, loader:Loader, qwe:Bitmap;
                public function Button(x:int, y:int)
                {
                        super();
                        loader = new Loader();
                        loader.load(new URLRequest("images\\nextLevel.png"));
                        upState = loader.content as Bitmap;
                        this.x=x; this.y=y;
                        this.addChild(upState);
                }
        }
}

Изображение находится по адресу: D:\Documents\Adobe Flash Builder 4.5\Game1\src\images\nextLevel.png. В справке сказано, что можно использовать относительный путь, правильно его записал?

PS Уже после финальной компиляции, эта картинка будет находится в самом SWF файле приложения?

КорДум 15.07.2011 22:37

Слеш не в ту сторону.

Добавлено через 2 минуты
Цитата:

PS Уже после финальной компиляции, эта картинка будет находится в самом SWF файле приложения?
Нет. Используйте Embed.

Universe 15.07.2011 22:46

да и два слеша лучше не ставить!

КорДум 15.07.2011 22:48

Цитата:

Сообщение от Universe (Сообщение 1011965)
да и два слеша лучше не ставить!

Почему?

goodguy 15.07.2011 22:48

Да и вот тут ошибка:
Цитата:

Код AS3:

loader = new Loader();
loader.load(new URLRequest("images\\nextLevel.png"));
upState = loader.content as Bitmap;


В этот момент контент еще не создан. Он будет null.
К объекту contentLoaderInfo загрузчика нужно добавить слушатель Event.COMPLETE и только после его срабатывания получаеть свойство content
Цитата:

да и два слеша лучше не ставить!
Это экранирование вообще-то. Как раз таких слешей надо 2, чтобы в итоге остался один. Но здесь, как уже сказал КорДум, нужен передний слеш

1q2w3e4r5t6, в чем прикол вызывать super() если в него не передается никаких параметров? Плеер его и так вызовет, автоматически.
п.с. Так же не понимаю, зачем везде ставить this, и при этом не отделять пробелами ни один оператор

1q2w3e4r5t6 15.07.2011 23:22

Flash Builder его автоматически создает, ни и фиг с ним))
Код AS3:

public class Button extends Sprite
        {
                private var upState:Bitmap, downState:Sprite, overState:Sprite, loader:Loader;
                public function Button(x:int, y:int, text:String)
                {
                        super();
                        loader = new Loader();
                        loader.load(new URLRequest("images//nextLevel.png"));
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeEventListener);
                        this.x=x; this.y=y;
                }
 
                private function completeEventListener(e:LoaderEvent):void
                {
                        upState = loader.content as Bitmap;
                        this.addChild(upState);
                }
        }

Выдает ошибку: TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::Event@2d54539 to org.osmf.events.LoaderEvent.

PS И что такое Embed?

t4arty 15.07.2011 23:36

Исправте: e:LoaderEvent на e:Event

1q2w3e4r5t6 15.07.2011 23:52

Ура! Получилось!
А что за Embed?

КорДум 16.07.2011 00:17

http://livedocs.adobe.com/flex/3/htm...etadata_3.html

1q2w3e4r5t6 16.07.2011 13:23

Спасибо, получилось с этой штукой загрузить PNG. А получается только одно изображение можно встраивать в переменную с типом Class?


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

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