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

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

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
shleyfVector = <Bitmap>[new MyBitmap(), new MyBitmap(), new MyBitmap(), new MyBitmap(), new MyBitmap()]
о___О
В цикл! Срочно!
__________________
тут я

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

Регистрация: Oct 2007
Сообщений: 43
gagaga, благодарю, но не работает.

Старый 08.08.2012, 15:35
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 13  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ну типа так:

Код AS3:
package  {
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	/**
	 * @author KorDum
	 */
 
	public class TrackBitmap extends Sprite {
		[Embed(source = "../lib/star-double.jpg")] private var StarAsset:Class;
 
		private const SPEED_ALPHA:Number = 0.1;
 
		private var _bitmapList:Vector.<Bitmap>;
		private var _target:Bitmap;
 
		//---------------------------------------------------------------------------
		//
		// CONSTRUCTOR
		//
		//---------------------------------------------------------------------------
 
		public function TrackBitmap() {
			addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
		}
 
 
		//---------------------------------------------------------------------------
		//
		// PRIVATE HANDLERS
		//
		//---------------------------------------------------------------------------
 
		private function addedToStageHandler(event:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
 
			_bitmapList = new <Bitmap>[];
 
			_target = new StarAsset() as Bitmap;
			addChild(_target);
 
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler);
		}
 
 
		private function stage_mouseMoveHandler(event:MouseEvent):void {
			_target.x = mouseX;
			_target.y = mouseY;
 
			var bitmap:Bitmap = new StarAsset() as Bitmap;
			bitmap.x = mouseX;
			bitmap.y = mouseY;
			addChild(bitmap);
 
			_bitmapList.push(bitmap);
 
			//event.updateAfterEvent();
		}
 
 
		private function enterFrameHandler(event:Event):void {
			for (var i:int = _bitmapList.length - 1; i >= 0; i--) {
				var bitmap:Bitmap = _bitmapList[i];
				bitmap.alpha -= SPEED_ALPHA;
 
				if (bitmap.alpha <= 0) {
					_bitmapList.splice(_bitmapList.indexOf(bitmap), 1);
					removeChild(bitmap);
				}
			}
		}
	}
}
Флешка в bin, исходники в src.

test.rar
__________________
тут я

Старый 08.08.2012, 16:00
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 14  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
Цитата:
Сообщение от КорДум Посмотреть сообщение
Ну типа так:

Код AS3:
package  {
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	/**
	 * @author KorDum
	 */
 
	public class TrackBitmap extends Sprite {
		[Embed(source = "../lib/star-double.jpg")] private var StarAsset:Class;
 
		private const SPEED_ALPHA:Number = 0.1;
 
		private var _bitmapList:Vector.<Bitmap>;
		private var _target:Bitmap;
 
		//---------------------------------------------------------------------------
		//
		// CONSTRUCTOR
		//
		//---------------------------------------------------------------------------
 
		public function TrackBitmap() {
			addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
		}
 
 
		//---------------------------------------------------------------------------
		//
		// PRIVATE HANDLERS
		//
		//---------------------------------------------------------------------------
 
		private function addedToStageHandler(event:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
 
			_bitmapList = new <Bitmap>[];
 
			_target = new StarAsset() as Bitmap;
			addChild(_target);
 
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler);
		}
 
 
		private function stage_mouseMoveHandler(event:MouseEvent):void {
			_target.x = mouseX;
			_target.y = mouseY;
 
			var bitmap:Bitmap = new StarAsset() as Bitmap;
			bitmap.x = mouseX;
			bitmap.y = mouseY;
			addChild(bitmap);
 
			_bitmapList.push(bitmap);
 
			//event.updateAfterEvent();
		}
 
 
		private function enterFrameHandler(event:Event):void {
			for (var i:int = _bitmapList.length - 1; i >= 0; i--) {
				var bitmap:Bitmap = _bitmapList[i];
				bitmap.alpha -= SPEED_ALPHA;
 
				if (bitmap.alpha <= 0) {
					_bitmapList.splice(_bitmapList.indexOf(bitmap), 1);
					removeChild(bitmap);
				}
			}
		}
	}
}
Флешка в bin, исходники в src.

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

Добавлено через 41 секунду
и ссылку на битмап убивать

Старый 08.08.2012, 16:17
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 15  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ссылки на битмапы я убиваю и так вообще-то.
Диспоз битмапдаты угу, забыл.
Код AS3:
if (bitmap.alpha <= 0) {
	_bitmapList.splice(_bitmapList.indexOf(bitmap), 1);
	bitmap.bitmapData.dispose();
	removeChild(bitmap);
}
Хотя я думал, что при эмбеде и создании битмапы битмапДата не клонируется.

Пул можно реализовать. Но не заморачивался. Я сделал быстрый пример на скорую руку с первой попавшейся картинкой.
Тем более, раз дизайнер топикстартер, значит там ничего грузящего не будет. Можно принебречь в данном контексте.
__________________
тут я

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

Регистрация: Oct 2007
Сообщений: 43
КорДум, я такой нубец, думаю, что если бы вы мне прислали только код, то я никогда бы не разобрался, спасибо что прислали исходник. Ради не известной персоны, написали такой скрипт, огромное вам спасибо!

Скинул вам в личку своё мыло, если вам будет нужно что либо из флеш анимации или дизайна, ну мало ли, пишите, думаю помогу.

gagaga, вас спасибо тоже!

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от gagaga Посмотреть сообщение
память вытечет... надо хотябы диспос битмапдаты делать, лучше не добавлять/удалять одни и теже картинки, а просто перемещать. и ссылку на битмап убивать
gagaga, напомните, пожалуйста, в каких случаях необходимо использовать BitmapData#dispose(). И почему не сработает GC в данном примере?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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