|
|
|||||
Регистрация: Mar 2013
Сообщений: 41
|
Loader, BitmapData и атлас
Главный класс
package { import flash.display.Sprite; /** * ... * @author xrapa */ public class HungryFrog extends Sprite { public var preloader:Preloader=new Preloader(); public var atlasClass:Atlas=new Atlas(); public function HungryFrog ():void { addChild(preloader); addChild(atlasClass); } }} package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import flash.net.URLRequest; import flash.display.Bitmap; public class Preloader extends Sprite { public var atlas:Loader; [Embed(source="assets/myx-z-yl1.png")] public static const MYX:Class; public var myx:Bitmap=Bitmap(new MYX()); public function Preloader():void { atlas = new Loader(); atlas.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, patlas); atlas.contentLoaderInfo.addEventListener(Event.COMPLETE, catlas); atlas.load(new URLRequest("assets/atlas.png")); trace("Preloader"); } public function patlas (e:ProgressEvent):void {addChild(myx);myx.x=((stage.stageHeight/2)-(myx.height/2));myx.y=((stage.stageWidth/2)-(myx.width/2)); myx.smoothing = true;trace(e.bytesLoaded/e.bytesTotal);myx.scaleX=(e.bytesLoaded/e.bytesTotal);myx.scaleY=(e.bytesLoaded/e.bytesTotal);} public function catlas (e:Event):void {trace("catlas"); atlas.removeEventListener(Event.COMPLETE, patlas); atlas.removeEventListener(ProgressEvent.PROGRESS, catlas); removeChild(myx);myx=null; } } } package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; public class Atlas extends Sprite { [Embed(source="assets/atlas.xml", mimeType="application/octet-stream")] public static const AtlasXml:Class; public var loaderBitmapData:BitmapData; public var preloader:Preloader=new Preloader(); public var atlasXML:XML = XML(new AtlasXml()); public var image1:Bitmap; public function Atlas():void { loaderBitmapData = new BitmapData(preloader.atlas.width, preloader.atlas.height); loaderBitmapData.draw(preloader.atlas); image1 = new Bitmap(loaderBitmapData); addChild(image1); } } } |
|
|||||
а если не секрет - для чего?
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
зачем делить, если можно отрисовать и так
|
|
|||||
Да, Graphics#beginBitmapFill Вам в помощь.
|
|
|||||
Регистрация: Mar 2013
Сообщений: 41
|
СПАСИБО, с этим разобрался. А как мне теперь спрайт mySprite из класса Atlas добавить на экран после загрузки лоадера.
Главный класс package { import flash.display.Sprite; /** * ... * @author xrapa */ public class HungryFrog extends Sprite { public var preloader:Preloader=new Preloader(); public function HungryFrog ():void { addChild(preloader); } }} package { import flash.display.Bitmap; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import flash.net.URLRequest; public class Preloader extends Sprite { public var atlas:Loader; [Embed(source="assets/myx-z-yl1.png")] public static const MYX:Class; public var myx:Bitmap=new MYX(); public var atlasClass:Atlas=new Atlas(); public function Preloader():void { atlas = new Loader(); atlas.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, patlas); atlas.contentLoaderInfo.addEventListener(Event.COMPLETE, catlas); atlas.load(new URLRequest("assets/atlas.png")); /* ATLAS =event.target.content.bitmapData; //image1 = new Bitmap(ATLAS); logoxrapa = new Bitmap(); logoxrapa.bitmapData = new BitmapData(669, 267); logoxrapa.bitmapData.copyPixels(ATLAS, new Rectangle(130, 571, 669, 267), new Point(0, 0)); logoxrapa.scaleX=0.7; logoxrapa.scaleY=0.7; addChild(logoxrapa);*/ trace("Preloader"); } public function patlas (e:ProgressEvent):void {addChild(myx);myx.x=((stage.stageHeight/2)-(myx.height/2));myx.y=((stage.stageWidth/2)-(myx.width/2)); myx.smoothing = true;trace(e.bytesLoaded/e.bytesTotal);myx.scaleX=(e.bytesLoaded/e.bytesTotal);myx.scaleY=(e.bytesLoaded/e.bytesTotal);} public function catlas (event:Event):void {trace("catlas"); atlas.removeEventListener(Event.COMPLETE, patlas); atlas.removeEventListener(ProgressEvent.PROGRESS, catlas); removeChild(myx);myx=null; addChild(atlasClass.mySprite); } } } package { import flash.display.BitmapData; import flash.display.Sprite; import flash.geom.Matrix; public class Atlas extends Sprite { [Embed(source="assets/atlas.xml", mimeType="application/octet-stream")] public static const AtlasXml:Class; public var mySprite:Sprite; public var myBitmap:BitmapData; public var matrix:Matrix; public var preloader:Preloader=new Preloader(); // public var atlasXML:XML = XML(new AtlasXml()); public function Atlas():void { myBitmap= new BitmapData(preloader.atlas.width, preloader.atlas.height, false); myBitmap.draw(preloader.atlas); matrix= new Matrix(); mySprite.graphics.beginBitmapFill(myBitmap, matrix, true); mySprite.graphics.drawRect(100, 50, 200, 90); mySprite.graphics.endFill(); } } } |
Часовой пояс GMT +4, время: 02:34. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|