Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2015, 01:07
tooth212 вне форума Посмотреть профиль Отправить личное сообщение для tooth212 Найти все сообщения от tooth212
  № 1  
Ответить с цитированием
tooth212

Регистрация: Dec 2012
Сообщений: 172
Question Стартовые экраны в горизонтальном положении в Iphone

Добрый день. У меня возникла проблема при добавлении стартовых экранов в горизонтальном положении в Iphone. Недавно я узнал, что landscape (горизонтальных) экранов для iphone нет, а есть только в версии 6 plus. Из-за этого возник вопрос:
У меня горизонтальное приложение, для того, чтобы экран корректно работал надо просто поменять значения width и height картинки?
Или все равно оставить таким же, но картинка будет повернута на 90 градусов?
Т.к. в Ipad, если не указывать landscape экран или portrait, то экран растягивается (такое начало происходить с появления air 15, когда добавилась 64-битность, добавился этот баг). К сожалению, проверить на реальном устройстве (Iphone) нет возможности.
Прикладываю две картинки (первый и второй способ)
Изображения
   


Последний раз редактировалось tooth212; 19.06.2015 в 02:02.
Старый 19.06.2015, 06:29
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вот тут есть решение

Старый 19.06.2015, 12:28
tooth212 вне форума Посмотреть профиль Отправить личное сообщение для tooth212 Найти все сообщения от tooth212
  № 3  
Ответить с цитированием
tooth212

Регистрация: Dec 2012
Сообщений: 172
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Вот тут есть решение
Это немного другое, мне именно splash (launch) screens нужны, которые прикладываются к приложению.

Старый 19.06.2015, 19:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А какая разница? Сплеш это же такая же часть приложения, как и все остальное. Сначала показываем белый экран, ждем переориентации, и показываем сплеш

Старый 19.06.2015, 20:46
tooth212 вне форума Посмотреть профиль Отправить личное сообщение для tooth212 Найти все сообщения от tooth212
  № 5  
Ответить с цитированием
tooth212

Регистрация: Dec 2012
Сообщений: 172
Цитата:
Сообщение от caseyryan Посмотреть сообщение
А какая разница? Сплеш это же такая же часть приложения, как и все остальное. Сначала показываем белый экран, ждем переориентации, и показываем сплеш
А ведь до того, как включится приложение есть время, а если сначала будет белый экран, то потом уже все загрузится.

Добавлено через 17 минут
Ведь само приложение корректно работает.

Старый 20.06.2015, 16:41
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 6  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Взял где-то из оф. туториалов, кажись старлинга. Правда немного переделал
в мейне
Код AS3:
private function showLaunchImage():void
{
	_splash = new SplashLauncherAsBitmap( splashBitmap, stage, "assets/launch-images/",'<b>ТРЕМБІТА</b>',Fonts.Ubuntu, showLaunchAnimate);
	addChild( _splash );
}
Код AS3:
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...

Старый 20.06.2015, 17:46
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вот эта конструкция убила)
Код AS3:
var parrent:DisplayObjectContainer = this.parent;
if (parent)
{
	parrent.removeChild(this);
}
Возникает один только вопрос. Нафига? )

Старый 21.06.2015, 00:04
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 8  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Возникает один только вопрос. Нафига? )
Сообственно для частного случая
Код AS3:
_launchImage.contentLoaderInfo.addEventListener(Event.COMPLETE,eventCompleteHandler);
Или что смущает?
__________________
return this...

Старый 21.06.2015, 00:09
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 9  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Зачем было создавать переменную parrent?

Старый 21.06.2015, 00:13
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 10  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Скорее ответ находиться у меня в мейне
Код AS3:
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 );
		}	
	}
}
Добавлено через 1 минуту
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Зачем было создавать переменную parrent?
действительно, не заметил))
__________________
return this...

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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