![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2012
Сообщений: 172
|
Добрый день. У меня возникла проблема при добавлении стартовых экранов в горизонтальном положении в Iphone. Недавно я узнал, что landscape (горизонтальных) экранов для iphone нет, а есть только в версии 6 plus. Из-за этого возник вопрос:
У меня горизонтальное приложение, для того, чтобы экран корректно работал надо просто поменять значения width и height картинки? Или все равно оставить таким же, но картинка будет повернута на 90 градусов? Т.к. в Ipad, если не указывать landscape экран или portrait, то экран растягивается (такое начало происходить с появления air 15, когда добавилась 64-битность, добавился этот баг). К сожалению, проверить на реальном устройстве (Iphone) нет возможности. Прикладываю две картинки (первый и второй способ) Последний раз редактировалось tooth212; 19.06.2015 в 02:02. |
|
|||||
|
Регистрация: Dec 2012
Сообщений: 172
|
Цитата:
Добавлено через 17 минут Ведь само приложение корректно работает. |
|
|||||
|
Взял где-то из оф. туториалов, кажись старлинга. Правда немного переделал
в мейне private function showLaunchImage():void { _splash = new SplashLauncherAsBitmap( splashBitmap, stage, "assets/launch-images/",'<b>ТРЕМБІТА</b>',Fonts.Ubuntu, showLaunchAnimate); addChild( _splash ); } package ua.future.service { import flash.display.Bitmap; import flash.display.DisplayObjectContainer; import flash.display.Loader; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageOrientation; import flash.events.Event; import flash.filesystem.File; import flash.filesystem.FileMode; import flash.filesystem.FileStream; import flash.geom.Point; import flash.system.Capabilities; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.utils.ByteArray; public class SplashLauncherAsBitmap extends Sprite { private var _launchImage:Loader; private var _savedAutoOrients:Object; private var _splashBitmap:Object; private var _callback:Function; public function SplashLauncherAsBitmap(bitmap:Class,stageRef:Stage,path:String,brand:String,font:String,callback:Function) { super(); var filePath:String; var isPortraitOnly:Boolean = false; var size:Point = new Point( stageRef.fullScreenWidth, stageRef.fullScreenHeight ); _callback = callback; /* size.x = size.x; size.y = size.y; /***/ if(Capabilities.manufacturer.indexOf("iOS") >= 0) { var isCurrentlyPortrait:Boolean = stageRef.orientation == StageOrientation.DEFAULT || stageRef.orientation == StageOrientation.UPSIDE_DOWN; if(Capabilities.screenResolutionX == 1242 && Capabilities.screenResolutionY == 2208) { //iphone 6 plus filePath = isCurrentlyPortrait ? "Default-414w-736h@3x.png" : "Default-414w-736h-Landscape@3x.png"; } else if(Capabilities.screenResolutionX == 1536 && Capabilities.screenResolutionY == 2048) { //ipad retina filePath = isCurrentlyPortrait ? "Default-Portrait@2x.png" : "Default-Landscape@2x.png"; } else if(Capabilities.screenResolutionX == 768 && Capabilities.screenResolutionY == 1024) { //ipad classic filePath = isCurrentlyPortrait ? "Default-Portrait.png" : "Default-Landscape.png"; } else if(Capabilities.screenResolutionX == 750) { //iphone 6 isPortraitOnly = true; filePath = "Default-375w-667h@2x.png"; } else if(Capabilities.screenResolutionX == 640) { //iphone retina isPortraitOnly = true; if(Capabilities.screenResolutionY == 1136) { filePath = "Default-568h@2x.png"; } else { filePath = "Default@2x.png"; } } else if(Capabilities.screenResolutionX == 320) { //iphone classic isPortraitOnly = true; filePath = "Default.png"; } } var trouble:Boolean = true; if(filePath) { filePath = path+filePath; var file:File = File.applicationDirectory.resolvePath(filePath); if(file.exists) { var bytes:ByteArray = new ByteArray(); var stream:FileStream = new FileStream(); stream.open(file, FileMode.READ); stream.readBytes(bytes, 0, stream.bytesAvailable); stream.close(); trouble = false; _launchImage = new Loader(); _launchImage.contentLoaderInfo.addEventListener(Event.COMPLETE,eventCompleteHandler); _launchImage.loadBytes(bytes); addChild(_launchImage); _savedAutoOrients = stageRef.autoOrients; stageRef.autoOrients = false; if(isPortraitOnly) { stageRef.setOrientation(StageOrientation.DEFAULT); } } } if (trouble) { /* _splashView.x = stage.fullScreenWidth*.5; _splashView.y = stage.fullScreenHeight*.5; */ graphics.beginFill(0xFFFFFF); graphics.drawRect(0,0,size.x, size.y); graphics.endFill(); _splashBitmap = new bitmap(); _splashBitmap.x = (size.x-_splashBitmap.width)*.5; _splashBitmap.y = (size.y-_splashBitmap.height)*.5; var tsize:Number = Math.floor(size.y*.07); var tf:TextFormat = new TextFormat(font, tsize ,0x0,true); tf.align = TextFormatAlign.CENTER; var t:TextField = new TextField(); t.height = tsize*1.2; t.width = size.x; t.y = _splashBitmap.y+_splashBitmap.height*1.15; // t.x = -splash.x; t.embedFonts = true; t.defaultTextFormat = tf; t.htmlText = brand; addChild(t); addChild(_splashBitmap as Bitmap); stageRef.color = 0x0; if (this.stage) eventCompleteHandler(); else addEventListener(Event.ENTER_FRAME, eventCompleteHandler); } // x = -width*.5; } private function eventCompleteHandler(e:Event=null):void { if (e) { e.target.removeEventListener(e.type, eventCompleteHandler); if (!this.stage) { addEventListener(Event.ENTER_FRAME, eventCompleteHandler); return; } } var parrent:DisplayObjectContainer = this.parent; if (parent) { parrent.removeChild(this); } if (_callback) { _callback(); } } } } Добавлено через 2 минуты а нет, эт из перьев Добавлено через 5 минут правда сплеш, таким образом отображается дольше, но плюс в том, что само приложение не выделяет ресурсы под каждый экран, а грузит с диска лишь то что нужно
__________________
return this... |
|
|||||
|
Сообственно для частного случая
Или что смущает?
__________________
return this... |
|
|||||
|
Зачем было создавать переменную parrent?
|
|
|||||
|
Скорее ответ находиться у меня в мейне
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import assets.Fonts; import ua.future.FCore; import ua.future.FModel; import ua.future.FView; import ua.future.model.Version; import ua.future.service.SplashAnimate; import ua.future.service.SplashLauncherAsBitmap; [SWF(width="960",height="640",frameRate="60",backgroundColor="#FFFFFF")] public class Main extends Sprite { [Embed(source="assets/Default.png")] private var splashBitmap:Class; private var _model:FModel; private var _core:FCore; private var _view:FView; private var _splash:SplashLauncherAsBitmap; private var _animate:SplashAnimate; public function Main() { super(); if (stage) { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; } Version.configure( Version.DEBUG ); showLaunchImage(); this.mouseEnabled = this.mouseChildren = false; } private function showLaunchImage():void { _splash = new SplashLauncherAsBitmap( splashBitmap, stage, "assets/launch-images/",'<b>ТРЕМБІТА</b>',Fonts.Ubuntu, showLaunchAnimate); addChild( _splash ); } protected function showLaunchAnimate():void { _animate = new SplashAnimate( _splash, Version.hideTime, initCore ); addChild( _animate ); } private function initCore():void { _splash = null; _animate= null; _model = new FModel(); _view = new FView(_model); _core = new FCore(_model, _view); addChild( _view ); } } } действительно, не заметил))
__________________
return this... |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|