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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.12.2015, 09:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 11  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Сдается мне, что лагает эта система, скорее всего, от чего-то другого. Не во вращении 30 картинок дело.

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
Профайлер (скаут) мгновенно показывает такие вещи, без гаданий где затык.

Старый 17.12.2015, 17:13
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 13  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Цитата:
Сообщение от ShockWave512 Посмотреть сообщение
Профайлер (скаут) мгновенно показывает такие вещи, без гаданий где затык.
Да, я знаю спасибо. Он как раз таки показывает нагрузку на рендер.


Последний раз редактировалось zCHESNOKz; 17.12.2015 в 20:10.
Старый 17.12.2015, 18:20
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 14  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
а какого размера битмапа?

Старый 17.12.2015, 19:54
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 15  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Цитата:
Сообщение от undefined Посмотреть сообщение
а какого размера битмапа?
примерно 100х100 px

Добавлено через 50 минут
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Сдается мне, что лагает эта система, скорее всего, от чего-то другого. Не во вращении 30 картинок дело.
Ты прав. Я вроде бы нашел проблему.
[frameRae:45] (все теже картинки 100х100)
- FPS при 50 объектах почти не проседает.
- при 100 объектах, 22-37 короче среднее FPS 30.
Мне подходит вообщем.

Как у меня это получилось: Я просто сделал анимацию (вращение+scale) в самом флеше. А самое главное, что анимация должна быть типа "Анимация движения" (при "Классической анимации движения" падает FPS)
+ если вы анимируете символ в котором есть маски (или возможно еще что то типа слоев, и других вложенных клипов) то для анимации обращайте данный клип в еще один клип, и производите трансформации уже с ним. Почему в клип, а не в Графику? Потому, что при обращении в графику тоже падает FPS. Даже не помогает преобразование в ключи.

Надеюсь что так работает не только у меня, а мое решение тоже еще кому то поможет!

--- --- ---

Еще я выявил, что FPS начинает падать, когда поверх или снизу данного клипа размещается еще какой то клип. То есть если они друг друга перекрывают. Это особенности рендера Flash?


Последний раз редактировалось zCHESNOKz; 17.12.2015 в 22:56.
Старый 18.12.2015, 06:17
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 16  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Это костыльное решение. Да и вообще не решение, по сути. FPS все равно падает. И не важно до какого значения.
Скорее всего графика там у тебя векторная. Или в самих картинках, или в масках. Но тут точно какая-то дезинформация.
Вот тут вообще 200 вращаются, и ни сколько FPS не проседает. Можно и 300 сделать, будет то же самое
RectsRotation.swf   (2.9 Кб)

Код AS3:
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.Point;
 
	[SWF(frameRate = 30)]
	public class ImagesRotation extends Sprite {
 
		private var _allObjects:Array = [];
 
		public function ImagesRotation() {
 
			for (var i:int = 0; i < 200; i++) {
				var b:Bitmap = new Bitmap(new BitmapData(100, 100, false, Math.random() * 100000000));
				var s:Sprite = new Sprite();
				var pos:Point = getRandomPosition();
				b.x 	= -b.width >> 1;
				b.y 	= -b.height >> 1;
				s.x 	= pos.x;
				s.y 	= pos.y;
				s.addChild(b);
				addChild(s);
				_allObjects.push(s);
			}
			addChild(new Stats());
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
 
		private function onEnterFrame(e:Event):void {
			for each (var sprite:Sprite in _allObjects) {
				sprite.rotation += 20;
			}
		}
		private function getRandomPosition():Point {
			return new Point(stage.stageWidth * Math.random(), stage.stageHeight * Math.random());
		}
	}
 
}
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_4.jpg
Просмотров: 75
Размер:	137.2 Кб
ID:	31921  
Вложения
Тип файла: swf RectsRotation.swf (2.9 Кб, 92 просмотров)
Тип файла: zip Source.zip (2.2 Кб, 18 просмотров)

Старый 18.12.2015, 10:16
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 17  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Это растр. Импортирую в библиотеку swc только растр. Из вектора - маска, для каждого изображения.

Изображение которое я вращаю - свечение. Потом в определенное время я включаю visible = true - красной зоны (изображение ). Оно как раз перекрывает свечение, ну или под ним. Не суть. И начинает падать FPS. Позже попробую показать флеху и код.
--- --- ---
Вот флешка и исходники.

Убрал векторные маски - ничего не изменилось, на FPS никак не повлияло. Дело просто в унылом рендере флеша.


Scketch.swf   (22.3 Кб)


код:

Код AS3:
public function Scketch()  
		{    
			for (var i:int = 0; i < 75; i++) 
			{
				addChild(box = new Box());
				box_arr.push(box);
 
				box.y = 175;
				box.x = i * 9 + 50;    
				//box.x = 100;   
			}
 
			stage.addEventListener(MouseEvent.CLICK, ClickL);
		}
 
		protected function ClickL(e:MouseEvent):void
		{
			for (var i:int = 0; i < box_arr.length; i++) 
			box_arr[i].Bar();
		}
и
 
public function Box()  
		{
			addChild(area = new fon_plant());
			area.visible = false; 
 
			addChild(glow = new fon_b());
		} 
 
		public function Bar():void
		{
			swicher = false; 
			area.visible = false;
		}
 
		public function Foo():void  
		{
			swicher = true;
			area.visible = true;
		}
Изображения
   
Вложения
Тип файла: zip Scketch_src.zip (596.2 Кб, 22 просмотров)
Тип файла: swf Scketch.swf (22.3 Кб, 97 просмотров)


Последний раз редактировалось zCHESNOKz; 18.12.2015 в 10:51.
Старый 18.12.2015, 11:50
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 18  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Не надо гнать на флеш) я тебе привел код и файл, к котором двести картинок вращается. Запусти его у себя на компе. Если будет стабльно 30 фпс, значит дело в твоем коде. Если будет провисать, значит дело в компе. У меня и посерьезнее рендер бывал без провисаний, причем намного серьезнее
Цитата:
Из вектора - маска, для каждого изображения.
)) А говоришь растр. Векторная маска или просто векторная картинка. Для компа разницы нет. Одинаково сложно считается

п.с. Открыть исходник не могу. Нет у меня Flash CC

Старый 18.12.2015, 12:09
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 19  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Не надо гнать на флеш)
Я погорячился, прости Flash! Запустил, - твоя флеха не проседает. Комп в норме. Та и правда, глупо что я напоролся на такую маленькую проблему. Но за то очень весомую.

Как думаешь может посмотреть в сторону блиттинга, если проблема не решиться? Может поможет?


Последний раз редактировалось zCHESNOKz; 18.12.2015 в 12:53.
Старый 18.12.2015, 20:19
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 20  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Просмотрел исходник, причина лагов ясна - НЕ нужно оборачивать растровую картинку в мувик и делать над ней анимацию во флеше, это вся причина лагов. Как исправить:
1) Добавлять готовую растровую картинку сразу на сцену, НИ В КОЕМ случает НЕ НУЖНО оборачивать её ни в какие мувиклипы.
2) Анимацию вращения и увеличения создавать программно.

Итог: лагов не будет.
__________________
Я заклинаю вас действовать иначе.

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

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

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


 


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


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