![]() |
|
||||||||||
|
|||||
|
[+1 29.06.10]
Регистрация: Nov 2009
Сообщений: 80
|
Привет, пытаюсь написать простой класс загрузки внешних изображений. Не могу понять как реализовать возврат методом класса изображения после его загрузки. Вызов dno.getBitmap() сразу после обьявления класса не возвращает битмап, поскольку он не загружен...как правильно реализовать это, желательно чтобы затрагивать только LoaderImg.as
суть в том, чтобы класс LoaderImg вернул Bitmap Сейчас это выглядит так: main.as package { import flash.display.*; import flash.events.*; import flash.system.LoaderContext; import flash.net.URLRequest; import LoadImg; public class Main extends Sprite { public function Main():void { if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); } } public function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var dno:LoadImg = new LoadImg("https://www.google.com.ua/images/srpr/logo11w.png"); stage.addChild(dno.getBitmap()); } } } package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.events.Event; import flash.net.URLRequest; public class LoadImg { public var imgB:Bitmap; public function LoadImg(url:String):void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.load(new URLRequest(url)); } private function onComplete (event:Event):void { var imgBD = event.target.content.bitmapData; this.imgB = new Bitmap(imgBD); } public function getBitmap():Bitmap { return this.imgB; } } } Последний раз редактировалось JekelSkaz; 29.01.2014 в 17:57. |
|
|||||
|
[+1 29.06.10]
Регистрация: Nov 2009
Сообщений: 80
|
Цитата:
я могу передать stage и запихать в него изображение посде загрузки в самом классе LoaderImg, но это не то, что мне нужно |
|
|||||
|
Регистрация: Jan 2014
Адрес: Россия, Саратов
Сообщений: 28
|
он вернет вам Bitmap, когда закончит загрузку
|
|
|||||
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.events.Event; import flash.net.URLRequest; public class LoadImg { public var imgB:Bitmap; public function LoadImg(url:String):void { this.imgB = new Bitmap(); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.load(new URLRequest(url)); } private function onComplete (event:Event):void { var imgBD = event.target.content.bitmapData; this.imgB.bitmapData = imgBD; } public function getBitmap():Bitmap { return this.imgB; } } }
__________________
Будь проще. |
|
|||||
|
[+1 29.06.10]
Регистрация: Nov 2009
Сообщений: 80
|
Цитата:
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Вы добавляете на сцену битмап, который используется в лоадере.
Если бы Вы сделали .clone(), такого бы не случилось и битмап не "заполнился". |
|
|||||
|
[+1 29.06.10]
Регистрация: Nov 2009
Сообщений: 80
|
да, логично) спасибо всем за помощь
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|