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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 29.03.2016, 23:37
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код AS3:
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Shape;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.events.Event;
import flash.geom.Matrix;
import flash.display.StageScaleMode;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
 
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.frameRate = 60;
 
var background:Shape = new Shape();
background.graphics.beginFill(0xa0a0a0);
background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
addChild(background);
 
var tf:TextField = new TextField();
tf.width = stage.stageWidth;
tf.height = 30;
tf.y = 10;
tf.defaultTextFormat = new TextFormat('Arial', 20, 0xffffff, true, null, null, null, null, TextFormatAlign.CENTER);
tf.text = '0%';
addChild(tf);
 
var rectToFill:BitmapData = new BitmapData(300, 200, false, 0xffffff);
var rectToFillBmp:Bitmap = new Bitmap(rectToFill);
rectToFillBmp.x = (stage.stageWidth - rectToFillBmp.width) / 2;
rectToFillBmp.y = (stage.stageHeight - rectToFillBmp.height) / 2;
addChild(rectToFillBmp);
 
var canvas:Shape = new Shape();
addChild(canvas);
 
var mtx:Matrix = new Matrix();
mtx.translate(-rectToFillBmp.x, -rectToFillBmp.y);
 
var brushPosition:Point = new Point();
 
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
 
function onMouseDown(event:MouseEvent):void {
	//brushPosition.x = event.stageX;
	//brushPosition.y = event.stageY;
	canvas.graphics.moveTo(event.stageX, event.stageY);
	canvas.graphics.lineStyle(40, 0xff0000);
 
	stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
	stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpOrLeave);
	stage.addEventListener(Event.MOUSE_LEAVE, onMouseUpOrLeave);
}
 
function onMouseMove(event:MouseEvent):void {
	canvas.graphics.lineTo(event.stageX, event.stageY);
}
 
function onMouseUpOrLeave(event:MouseEvent):void {
	stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
	stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUpOrLeave);
	stage.removeEventListener(Event.MOUSE_LEAVE, onMouseUpOrLeave);
 
	// Срисовываем нашу мазанину с холста в "прямоугольник".
	rectToFill.draw(canvas, mtx, null, null, null, true);
	canvas.graphics.clear();
 
	// Берем самое яркое (255-е) значение "синего" (который по индексу 2)
	// вектора гистограммы нашего "прямоугольника". Так как мы рисуем красным,
	// под закрашенными пикселями тухнут зеленые и синие значения.
	// Вот мы и ждем, когда распространение синих точек сведется со значения
	// 60000 (ширина умноженная на высоту прямоугольника, его площадь в квадратных
	// пикселях, так сказать) до нуля.
	var ratio:Number = (1 - rectToFill.histogram()[2][255] / 60000) * 100;
 
	if (ratio == 100) {
		tf.text = int(ratio) + '% (готово!)';
	} else if (ratio  >= 90) {
		tf.text = int(ratio) + '% (почти)';
	} else if (ratio  >= 70) {
		tf.text = int(ratio) + '% (еще немножечко)';
	} else {
		tf.text = int(ratio) + '%';
	}
}
Fill.swf   (2.0 Кб)
Вложения
Тип файла: swf Fill.swf (2.0 Кб, 222 просмотров)
__________________
Поймай яблоко 2!

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

Теги
закрасить , заштриховать , проверить

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

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


 


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


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