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

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

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
По моему, если класть на задний фон JPEG, вместо PNG, просто убавляется число альфа-каналов в стопке, и можно рисовать на 1 больше PNG. Сейчас проверю.
__________________
There is no thing in this world that is not simple.

Старый 31.03.2015, 20:37
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 12  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Лично у меня не получилось воспроизвести проблему в чистом проекте.
Код AS3:
package com.zackmercury
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.display.Graphics;
	import flash.geom.Point;
	import flash.text.TextField;
	import flash.utils.getTimer;
 
	/**
	 * ...
	 * @author ZackMercury
	 */
 
	public class Main extends Sprite
	{
		private var balls:Array = [];
 
		public function Main()
		{
			if (stage)
				init();
			else
				addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		public function init(e:Event = null):void
		{
			if (hasEventListener(Event.ADDED_TO_STAGE))
				removeEventListener(Event.ADDED_TO_STAGE, init);
			//entry
			var btn:MyButton = new MyButton("Test");
			btn.onClick = addBall;
			addChild(btn);
 
			addEventListener(Event.ENTER_FRAME, update);
		}
 
		private function addBall(e:MouseEvent):void 
		{
			var bmpDt:BitmapData = new BitmapData(100, 100, true, 0x00000000);
			var ball:Shape = new Shape();
			with (ball.graphics)
			{
				beginFill(0xCC9911);
				drawCircle(50, 50, 50);
				endFill();
				beginFill(0xFFAA00);
				drawCircle(50, 50, 20);
				endFill();
				beginFill(0x222222);
				drawCircle(50, 50, 5);
				endFill();
			}
 
			bmpDt.draw(ball);
 
			var bmp:Bitmap = new Bitmap(bmpDt, "auto", false);
			addChild(bmp);
			balls.push(bmp);
		}
 
		private function update(e:Event):void
		{
			for (var i:int = 0 ; i < balls.length; i ++)
			{
				balls[i].y = (1 + Math.sin(getTimer() / 1000 + i / 5)) / 2 * 400;
				balls[i].x = (1 + Math.cos(getTimer() / 1000 + i / 5)) / 2 * (800 - balls[i].width);
			}
		}
	}
}
Test.swf   (2.0 Кб)

Быть может, нужно непрозрачность понизить? Что я не так делаю?
Вложения
Тип файла: swf Test.swf (2.0 Кб, 92 просмотров)
__________________
There is no thing in this world that is not simple.

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Что я не так делаю?
Рисуете шарики вместо вставки их в виде пнг картинки с прозрачностью.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Так у ТС тоже вектор, который растеризуется. И эта проблема.
__________________
There is no thing in this world that is not simple.

Старый 01.04.2015, 11:50
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 15  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
В чистом проекте у меня тоже не получилось воспроизвести проблемму((
Код AS3:
package
{
	import animation.*;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
 
	/**
	 * ...
	 * @author 7_11
	 */
	public class Main extends Sprite 
	{
 
		private const W:uint = 720;
		private const H:uint = 450;
 
		// CONSTRUCTOR
		public function Main():void {
			// проверяем наличие stage, если нету - слушаем событие добавления на stage
			if (stage) { init() } else { addEventListener(Event.ADDED_TO_STAGE, init) };
		}
 
		// INIT
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			// растеризуем клипы
			rasterize();
		}
 
		// БИТМАП КЭШИРОВАНИЕ КЛИПОВ
		private function rasterize():void {
			// Получаем указатель на кэш анимаций
			var cache:AntAnimCache = AntAnimCache.getInstance();
 
			// Список изображений для растеризации
			var rastrList:Array = [Image_mc];
 
			// Добавляем имена клипов которые необходимо растеризировать.
			// Имя клипа - это его имя класса под которым он экспортируется в код.
			cache.addClipsToCacheQueue(rastrList);
 
			// Добавляем обработчики на прогресс и завершение кэширования.
			cache.onProgressCallback = onCacheProgress;
			cache.onCompleteCallback = onCacheComplete;
 
			// Запускаем процесс кэширования
			cache.makeCache();
		};
 
		// Отображение процесса кэширования клипов.
		private function onCacheProgress(percent:Number):void {
			trace('caching... ' + int(percent * 100) + '%')
		};
 
		// КЭШИРОВАНИЕ КЛИПОВ ЗАВЕРШЕНО - СОЗДАЁМ МИР
		private function onCacheComplete():void
		{
			// добавляем фоновую картинку
			var back:Shape = new Shape();
			back.graphics.beginFill(0xFFFFFF);
			back.graphics.drawRect(0, 0, W, H);
			back.graphics.endFill();
			addChild(back);
 
			// создаём 230 тестовых картинок
			for (var j:int = 0; j < 230; j++) {
				var img:AntActor = new AntActor();
				img.addAnimFromCache('Image_mc');
				img.play();
				addChild(img);
				img.x = W * .5;
				img.y = H * .5;
			};
		};
 
	}
 
}
test.swf   (8.0 Кб)
Вложения
Тип файла: swf test.swf (8.0 Кб, 80 просмотров)


Последний раз редактировалось dimarik; 01.04.2015 в 21:10. Причина: [FLASH=31502;100%;100%;#FFFFFF;]Test.swf[/FLASH]
Старый 01.04.2015, 12:08
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 16  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Забавная подробность: если картинки расположить не в одной точке, а через цикл со смещением в 1 пиксель, то чёрный прямоугольник появляется не по размерам кадра у первой картинки, а только по размерам области пересечения картинок...

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Кстати, в последних статьях Антон говорил, что полностью перешёл на ручной(буфферизированный) рендер.
Может, не просто так это?
__________________
There is no thing in this world that is not simple.

Старый 01.04.2015, 12:53
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 18  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Неверняка не просто так) Но для меня пока что словосочетания типа "буфферизированный рендер" звучат как какие-то заклинания. Пока что подложка jpg помогла, а дальше буду разбираться. Спасибо всем!

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
На самом деле ничего сложного в этом слове нет.
Это просто рисование всех и вся не в дисплейлист, а в 1 битмапу(растровый буффер) с обновлениями не целой битмапы, а кусками, там где она меняется.
Хотя так или иначе Flash каждый кадр перерисовывает битмапу заново на экране.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 01.04.2015 в 13:15.
Старый 01.04.2015, 13:52
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 20  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
спасибо за пояснение

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

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

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


 


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


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