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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2007, 14:28
yava вне форума Посмотреть профиль Отправить личное сообщение для yava Найти все сообщения от yava
  № 1  
Ответить с цитированием
yava

Регистрация: Jul 2007
Сообщений: 89
По умолчанию Библиотеки для рисования

Встречал ли кто-нибудь уже готовые исходные коды для рисования 2D и 3D объектов. Если встречали, киньте ссылочку посмотреть!

Старый 22.10.2007, 14:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.filters.BevelFilter;
import flash.filters.GlowFilter;
class GFX {
	private static var __counter:Number = 0;
	public static function rct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, lc:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		if(lc!=undefined){
			mc.lineStyle(1,lc,100);
		}
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function rctLR(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rctLR"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		mc.moveTo(0,r);
		mc.curveTo(0,0,r,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,r);
		mc.endFill();
		return mc;
	}
	public static function rctLRBR(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rctLRBR"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w, h);
		_mc.beginGradientFill("linear", [c,0xffffff],[a,a],[0,255], mtx);
		mc.moveTo(0,r);
		mc.curveTo(0,0,r,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h-r);
		mc.curveTo(w,h,w-r,h);
		mc.lineTo(0,h);
		mc.lineTo(0,r);
		mc.endFill();
		return mc;
	}
	public static function rctLRR(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rctLR"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		mc.moveTo(0,r);
		mc.curveTo(0,0,r,0);
		mc.lineTo(w-r,0);
		mc.curveTo(w,0,w,r);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,r);
		mc.endFill();
		return mc;
	}
	public static function fork(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, lc:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		if(lc!=undefined){
			mc.lineStyle(1,lc,100);
		}
		mc.moveTo(0,-h/8);
		mc.lineTo(w,0);
		mc.lineTo(1,h/8);
		mc.lineTo(1,h*7/8);
		mc.lineTo(w,h);
		mc.lineTo(0,h*9/8);
		mc.lineTo(0,-h/8);
		mc.endFill();
		return mc;
	}
	public static function pentacon(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, lc:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("pntc"+counter, _mc.getNextHighestDepth());
		if(lc!=undefined){
			mc.lineStyle(1,lc,100);
		}
		mc.beginFill(c,a);
		mc.moveTo(0,h/3);
		mc.lineTo(w/2,0);
		mc.lineTo(w,h/3);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,h/3);
		mc.endFill();
		return mc;
	}
	public static function drct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("drct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		mc.moveTo(0,0);
		mc.lineTo(w/3,0);
		mc.lineTo(w/3,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.moveTo(w*2/3,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(w*2/3,h);
		mc.lineTo(w*2/3,0);
		mc.endFill();
		return mc;
	}
	public static function lrct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("lrct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(0,0);
		mc.lineStyle(1,c,a,true,"none");
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function lfrct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, cl:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("lfrct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		mc.lineStyle(1,cl,100,true,"none");
		mc.moveTo(0,0);
		mc.lineTo(w-1,0);
		mc.lineTo(w-1,h-1);
		mc.lineTo(0,h-1);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function crl(mc:MovieClip, r:Number, c:Number, a:Number):MovieClip {
		var _mc:MovieClip = mc.createEmptyMovieClip("crl"+counter, mc.getNextHighestDepth());
		var c1:Number=r*(Math.SQRT2-1);
		var c2:Number=r*Math.SQRT2/2;
		var d:Number = r*2;
		_mc.beginFill(c,a);
		_mc.moveTo(d,r);
		_mc.curveTo(d,r+c1,r+c2,r+c2);
		_mc.curveTo(r+c1,d,r,d);
		_mc.curveTo(r-c1,d,r-c2,r+c2);
		_mc.curveTo(0,r+c1,0,r);
		_mc.curveTo(0,r-c1,r-c2,r-c2);
		_mc.curveTo(r-c1,0,r,0);
		_mc.curveTo(r+c1,0,r+c2,r-c2);
		_mc.curveTo(d,r-c1,d,r);
		_mc.endFill();
		return _mc;
	}
	public static function gcrl(mc:MovieClip, r:Number, c:Array, a:Array, o:Object):MovieClip {
		var _mc:MovieClip = mc.createEmptyMovieClip("crl"+counter, mc.getNextHighestDepth());
		var c1:Number=r*(Math.SQRT2-1);
		var c2:Number=r*Math.SQRT2/2;
		var d:Number = r*2;
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(r*2, r*2, o._rotation);
		_mc.beginGradientFill("linear", c,a,[0,128,255], mtx);
		_mc.lineStyle(2, o._lineColor, 100, false);
		_mc.moveTo(d,r);
		_mc.curveTo(d,r+c1,r+c2,r+c2);
		_mc.curveTo(r+c1,d,r,d);
		_mc.curveTo(r-c1,d,r-c2,r+c2);
		_mc.curveTo(0,r+c1,0,r);
		_mc.curveTo(0,r-c1,r-c2,r-c2);
		_mc.curveTo(r-c1,0,r,0);
		_mc.curveTo(r+c1,0,r+c2,r-c2);
		_mc.curveTo(d,r-c1,d,r);
		_mc.endFill();
		var b_f:BevelFilter = new BevelFilter(5, 90, 0xffffff, 30, 0x666666, 30, 2, 20, 1, 2);
		_mc.filters = new Array(b_f);
		return _mc;
	}
	public static function hrct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rct"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,a);
		mc.lineStyle(Styles.__linestyle.w,Styles.__linestyle.c,Styles.__linestyle.a,true);
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.moveTo(2,2);
		mc.lineTo(w-2,2);
		mc.lineTo(w-2,h-2);
		mc.lineTo(2,h-2);
		mc.lineTo(2,2);
		mc.endFill();
		return mc;
	}
	public static function rounded(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number, r:Number, lc:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rnd"+counter, _mc.getNextHighestDepth());
		if(lc!=undefined){
			mc.lineStyle(1,lc,100);
		}
		mc.beginFill(c,a);
		mc.moveTo(r,0);
		mc.lineTo(w-r,0);
		mc.curveTo(w,0,w,r);
		mc.lineTo(w,h-r);
		mc.curveTo(w,h,w-r,h);
		mc.lineTo(r,h);
		mc.curveTo(0,h,0,h-r);
		mc.lineTo(0,r);
		mc.curveTo(0,0,r,0);
		mc.endFill();
		return mc;
	}
	public static function ground(_mc:MovieClip, w:Number, h:Number, c:Array, a:Array, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rnd"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w,h,Math.PI/2);
		mc.beginGradientFill("linear",c,a,[0,255],mtx);
		mc.moveTo(r,0);
		mc.lineTo(w-r,0);
		mc.curveTo(w,0,w,r);
		mc.lineTo(w,h-r);
		mc.curveTo(w,h,w-r,h);
		mc.lineTo(r,h);
		mc.curveTo(0,h,0,h-r);
		mc.lineTo(0,r);
		mc.curveTo(0,0,r,0);
		mc.endFill();
		var g_f:GlowFilter = new GlowFilter(0xe2e2e2,1,8,8,2,1);
		mc.filters = new Array(g_f);
		return mc;
	}
2b continued...
__________________
Hell is the possibility of sanity

Старый 22.10.2007, 14:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
public static function bevel(_mc:MovieClip, w:Number, h:Number, c:Array, a:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rct"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w,h);
		mtx.translate(0,h/2);
		mc.beginGradientFill("radial",c,[100,100],[0,255],mtx);
		mc.lineStyle(Styles.__linestyle.w,Styles.__linestyle.c,Styles.__linestyle.a,true);
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		var b_ft:BevelFilter = new BevelFilter(h/4, 90, 0xffffff, .4, 0x000000, .3, 30, 30, 5, 3, "inner", false);
		var g_ft:GlowFilter = new GlowFilter(0, .3, w/6, h/6, 2, 3, true, false);
		var filterArray:Array = new Array();
		filterArray.push(b_ft);
		filterArray.push(g_ft);
		mc.filters = filterArray;
		return mc;
	}
	public static function grid(_mc:MovieClip, w:Number, h:Number, b:BitmapData):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rct"+counter, _mc.getNextHighestDepth());
		mc.beginBitmapFill(b);
		mc.lineStyle(Styles.__linestyle.w,Styles.__linestyle.c,Styles.__linestyle.a,true);
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function grad(_mc:MovieClip, w:Number, h:Number, cl:Array, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("grad"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w,h,r);
		mc.beginGradientFill("linear",cl,[100, 100],[0, 255],mtx,"pad","RGB");
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function mgrad(_mc:MovieClip, w:Number, h:Number, cl:Array, al:Array, rt:Array, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("grad"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w,h,r);
		mc.beginGradientFill("linear",cl,al,rt,mtx,"pad","RGB");
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function rainbow(_mc:MovieClip, w:Number, h:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("rainbow"+counter, _mc.getNextHighestDepth());
		var mtx:Matrix = new Matrix();
		mtx.createGradientBox(w,h,r);
		mc.beginGradientFill("linear",[0xff0000, 0xffff00, 0x00ff00, 0x00ffff, 0x0000ff, 0xff00ff, 0xff0000],[100, 100, 100, 100, 100, 100, 100],[0, 43, 85, 128, 170, 213, 255],mtx);
		mc.moveTo(0,0);
		mc.lineTo(w,0);
		mc.lineTo(w,h);
		mc.lineTo(0,h);
		mc.lineTo(0,0);
		mc.endFill();
		return mc;
	}
	public static function triang(_mc:MovieClip, w:Number, h:Number, c:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("tri"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,100);
		switch (r) {
			case 0 :
				mc.moveTo(w/2,0);
				mc.lineTo(w,h);
				mc.lineTo(0,h);
				mc.lineTo(w/2,0);
				mc.endFill();
				return mc;
				break;
			case 90 :
				mc.moveTo(0,0);
				mc.lineTo(w,h/2);
				mc.lineTo(0,h);
				mc.lineTo(0,0);
				mc.endFill();
				return mc;
				break;
			case 180 :
				mc.moveTo(0,0);
				mc.lineTo(w,0);
				mc.lineTo(w/2,h);
				mc.lineTo(0,0);
				mc.endFill();
				return mc;
				break;
			case 270 :
				mc.moveTo(w,0);
				mc.lineTo(w,h);
				mc.lineTo(0,h/2);
				mc.lineTo(w,0);
				mc.endFill();
				return mc;
				break;
			default :
				mc.moveTo(w/2,0);
				mc.lineTo(w,h);
				mc.lineTo(0,h);
				mc.lineTo(w/2,0);
				mc.endFill();
				return mc;
				break;
		}
	}
	public static function dtriang(_mc:MovieClip, w:Number, h:Number, c:Number, r:Number):MovieClip {
		var mc:MovieClip = _mc.createEmptyMovieClip("tri"+counter, _mc.getNextHighestDepth());
		mc.beginFill(c,100);
		switch (r) {
			case 0 :
				mc.moveTo(0,0);
				mc.lineTo(w/2,h/2);
				mc.lineTo(0,h);
				mc.lineTo(0,0);
				mc.moveTo(w/2,0);
				mc.lineTo(w,h/2);
				mc.lineTo(w/2,h);
				mc.endFill();
				return mc;
				break;
			case 180 :
				mc.moveTo(w/2,0);
				mc.lineTo(w/2,h);
				mc.lineTo(0,h/2);
				mc.lineTo(w/2,0);
				mc.moveTo(w,0);
				mc.lineTo(w,h);
				mc.lineTo(w/2,h/2);
				mc.lineTo(w,0);
				mc.endFill();
				return mc;
				break;
		}
	}
	public static function set counter(n:Number):Void {
		__counter = n;
	}
	public static function get counter():Number {
		return ++__counter;
	}
}
Мое, ©.
__________________
Hell is the possibility of sanity

Старый 22.10.2007, 15:19
yava вне форума Посмотреть профиль Отправить личное сообщение для yava Найти все сообщения от yava
  № 4  
Ответить с цитированием
yava

Регистрация: Jul 2007
Сообщений: 89
А есть ли что-то для AC2?

Старый 22.10.2007, 15:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Это самый что ни на есть АС2 %)
__________________
Hell is the possibility of sanity

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

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

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


 


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


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