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

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

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

Регистрация: Aug 2015
Сообщений: 6
ZackMercury, внук Петросяна?

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Вам пример набросать? Хорошо, сейчас набросаю.
__________________
There is no thing in this world that is not simple.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Example.swf   (21.1 Кб)


Исходник
Код AS3:
package com.zackmercury.examples
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.utils.getTimer;
 
	/**
	 * ...
	 * @author ZackMercury
	 */
	public class Main extends Sprite 
	{
		private var items:Array = [new Bitmap(R.i.getImage(R.ITEM_1).bitmapData, "auto", true), new Bitmap(R.i.getImage(R.ITEM_2).bitmapData, "auto", true), new Bitmap(R.i.getImage(R.ITEM_3).bitmapData, "auto", true), new Bitmap(R.i.getImage(R.ITEM_1).bitmapData, "auto", true), new Bitmap(R.i.getImage(R.ITEM_2).bitmapData, "auto", true), new Bitmap(R.i.getImage(R.ITEM_3).bitmapData, "auto", true)];
		private var movement:Number = 0;
		private var speed:Number = 100;
		private var lastTick:int = 0;
 
		private var mine:Array = [];
		private var mineLine:int = 4;
		private var pointer:Shape;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			addEventListener(Event.ENTER_FRAME, update);
			for (var i:int = 0 ; i < items.length; i++)
			{
				addChild(items[i]);
				items[i].y = items[i].height * i;
			}
			pointer = new Shape();
			pointer.graphics.lineStyle(2, 0x770000);
			pointer.graphics.beginFill(0xFF9999);
			pointer.graphics.moveTo(50, 0);
			pointer.graphics.lineTo(50, 50);
			pointer.graphics.lineTo(0, 25);
			pointer.graphics.lineTo(50, 0);
			addChild(pointer);
			pointer.x = items[0].width;
			pointer.y = items[0].height * items.length/2 - pointer.height / 2;
 
		}
 
		private function update(e:Event = null):void
		{
			var currTick:int = getTimer();
			var delta:int = currTick - lastTick;
 
			for (var i:int = 0; i < items.length; i ++)
			{
				items[i].y = int(movement + items[i].height * i)%(items[i].height*items.length);
			}
 
			movement += speed * delta/1000;
			if (speed > 0)
				speed --;
			else 
			{
				drawMine(getItemAt(pointer.y + pointer.height / 2).bitmapData);
				speed = Math.random() * 700;
			}
 
			lastTick = currTick;
		}
 
		private function getItemAt(y:int):Bitmap
		{
			for (var i:int = 0 ; i < items.length; i ++)
			{
				if (y >= items[i].y && y <= items[i].y + items[i].height)
					return items[i];
			}
			return null;
		}
 
		private function drawMine(bmd:BitmapData):void
		{
			var bitmap:Bitmap = new Bitmap(bmd, "auto", true);
			addChild(bitmap);
			mine.push(bitmap);
			for (var i:int = 0; i < mine.length; i ++)
			{
				mine[i].x = 100 + i % mineLine * mine[i].width;
				mine[i].y = int(i/mineLine)*mine[i].height;
			}
		}
 
	}
 
}
Код AS3:
package com.zackmercury.examples 
{
	import flash.display.Bitmap;
	import flash.display.CapsStyle;
	/**
	 * ...
	 * @author ZackMercury
	 */
	public class R extends Object //R - Resourse Factory Class
	{
		private static var ins:R;
 
		public static const ITEM_1:String = "Item1Bitmap";
		public static const ITEM_2:String = "Item2Bitmap";
		public static const ITEM_3:String = "Item3Bitmap";
 
		[Embed(source="images/item1.png")]
		private var Item1EmbedClass:Class;
		private var Item1Bitmap:Bitmap = new Item1EmbedClass();
		[Embed(source = "images/item2.png")]
		private var Item2EmbedClass:Class;
		private var Item2Bitmap:Bitmap = new Item2EmbedClass();
		[Embed(source="images/item3.png")]
		private var Item3EmbedClass:Class;
		private var Item3Bitmap:Bitmap = new Item3EmbedClass();
 
		public function R() 
		{
			super();
			if (ins) return;
			ins = this;
		}
 
		public function getImage(resourseName:String):Bitmap
		{ 
			return this[resourseName];
		}
 
		public static function get i():R
		{
			return ins?ins:new R();
		}
	}
 
}
Вложения
Тип файла: swf Example.swf (21.1 Кб, 45 просмотров)
Тип файла: rar images.rar (9.3 Кб, 11 просмотров)
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 15.08.2015 в 17:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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