Flash ile 3D uygulama

Flash - Flash ile 3D uygulama ...

Cevapla
Flash ile 3D uygulama
muratcdemirci isimli Üye şimdilik offline konumundadır

muratcdemirci

Grafiker / İstanbul

Dosya19

Flash ile 3D uygulama

Alt 25-03-2010 #1
Sponsorlu Bağlantılar

Uygulama:

1- Flash programını açın 6 adet aynı ebadlardaki resmi kütüphaneye alın.(Sahne boş kalacak) .Her resmin üzerine sırası ile sağ klik yapıp linkage seçeneğini işaretleyin.Açılan panelde 1. ve 3. kutucukları işaretleyip en üstteki ID alanına image0 ve sırası ile image1,...........,image5 yazın. Bu isimler kodlarda daha sonra dizi içine alınarak kullanılacaktır.

2- Sahne hala boştur. Buraya hiçbir eklenti yapılmayacak. Sadece 1. kareye alttaki kodları yazmanız yeterli olacaktır.


import flash.geom.Matrix;
import flash.geom.Point;
Stage.scaleMode = 'noScale';

var oRotations:Object = {x:0, y:0, z:0};
var nUnit:Number = 100/2;
var boxPoints_array:Array = new Array();
boxPoints_array.push({x:-nUnit, y:-nUnit, z:-nUnit});
boxPoints_array.push({x:nUnit, y:nUnit, z:-nUnit});
boxPoints_array.push({x:-nUnit, y:nUnit, z:-nUnit});
boxPoints_array.push({x:-nUnit, y:-nUnit, z:nUnit});
boxPoints_array.push({x:nUnit, y:-nUnit, z:nUnit});
boxPoints_array.push({x:nUnit, y:nUnit, z:nUnit});

var faces_array:Array = new Array();
faces_array.push([2, 0, 3]);
faces_array.push([5, 1, 2]);
faces_array.push([0, 2, 1]);
faces_array.push([4, 3, 0]);
faces_array.push([3, 4, 5]);
faces_array.push([1, 5, 4]);

var images_array:Array = ["image0", "image1", "image2", "image3", "image4", "image5"];

var my_mc:MovieClip = this.createEmptyMovieClip("scene_mc", this.getNextHighestDepth());
my_mc._x = Stage.width/2;
my_mc._y = Stage.height/2;
var nSensitivity:Number = 1/1000;

xInitializeBox();
xCreateBox();

my_mc.onEnterFrame = xCreateBox;

function xInitializeBox() {
var nLength:Number = faces_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var image_str:String = images_array[i];
var _mc:MovieClip = my_mc.createEmptyMovieClip(image_str, i);
faces_array[i].push(_mc);
var contents_mc:MovieClip = _mc.createEmptyMovieClip("contents", i);
contents_mc.attachBitmap(flash.display.BitmapData. loadBitmap(image_str), 1, "auto", true);
}
}

function xCreateBox() {
oRotations.x -= this._ymouse*nSensitivity;
oRotations.y += this._xmouse*nSensitivity;
var points2d:Array = xTransformPoints(boxPoints_array, oRotations);
var nLength:Number = faces_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var face_array:Array = faces_array[i];
var n0:Number = face_array[0];
var n1:Number = face_array[1];
var n2:Number = face_array[2];
var _mc:MovieClip = face_array[3];
xTransformMovieClipPoints(_mc, points2d[n0], points2d[n1], points2d[n2]);
}
}

function xTransformPoints(points_array:Array, oRotations:Object):Array {
var points2D_array:Array = new Array();
var nSin_x:Number = Math.sin(oRotations.x);
var nCos_x:Number = Math.cos(oRotations.x);
var nSin_y:Number = Math.sin(oRotations.y);
var nCos_y:Number = Math.cos(oRotations.y);
var nSin_z:Number = Math.sin(oRotations.z);
var nCos_z:Number = Math.cos(oRotations.z);
var nLength:Number = points_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var nX:Number = points_array[i].x;
var nY:Number = points_array[i].y;
var nZ:Number = points_array[i].z;
var nYx:Number = nCos_x*nY-nSin_x*nZ;
var nZx:Number = nSin_x*nY+nCos_x*nZ;
var nZy:Number = nCos_y*nZx-nSin_y*nX;
var nXy:Number = nSin_y*nZx+nCos_y*nX;
var nXz:Number = nCos_z*nXy-nSin_z*nYx;
var nYz:Number = nSin_z*nXy+nCos_z*nYx;
points2D_array[i] = new Point(nXz, nYz);
}
return points2D_array;
}

function xTransformMovieClipPoints(_mc:MovieClip, point0:Point, point1:Point, point2:Point):Void {
if (_mc._visible=xIsVisible(point0, point1, point2)) {
var myMatrix:Matrix = _mc.transform.matrix;
var contents_mc:MovieClip = _mc.contents;
var nWidth:Number = contents_mc._width;
var nHeight:Number = contents_mc._height;
var point1_0:Point = point0.subtract(point1);
var point1_2:Point = point2.subtract(point1);
myMatrix.tx = point1.x;
myMatrix.ty = point1.y;
myMatrix.a = (point1_0.x)/nWidth;
myMatrix.b = (point1_0.y)/nWidth;
myMatrix.c = (point1_2.x)/nHeight;
myMatrix.d = (point1_2.y)/nHeight;
_mc.transform.matrix = myMatrix;
}
}

function xIsVisible(point0:Point, point1:Point, point2:Point):Boolean {
var point0_1:Point = point1.subtract(point0);
var point0_2:Point = point2.subtract(point0);
var nX0_1:Number = point0_1.x;
var nY0_1:Number = point0_1.y;
var nX0_2:Number = point0_2.x;
if (!nX0_1) {
return ((0>nY0_1) != (nX0_2>0));
}
var nY0_2:Number = point0_2.y;
if (!nX0_2) {
return ((0>nY0_2) != (nX0_1<0));
}
return ((nY0_1/nX0_1<nY0_2/nX0_2) == (0<nX0_1 == 0>nX0_2));
}
Bu mesajdan alıntı yap
Sponsor Links

Grafikerler.net Reklamları

Cevapla

Benzer Konular
Konu Konu Bilgileri Forum Cevaplar Son Mesaj
Vector uygulama? SAKS67 Photoshop Soru ve Sorunlarınız 0 13-03-2010 00:35:08
hatalı uygulama-2 modigliani27 Organik Tarım Grafik Tasarım Yarışması 5 04-02-2010 19:04:25
Php uygulama yardım! BOMB Php, Asp, Perl, Html 0 14-11-2009 21:11:59
Güzel bir uygulama delirtenadam Serbest Çalışmalar 0 29-04-2009 03:51:36
Web Uygulama Elemanı sufyani Sonuçlanan İlanlar 1 02-05-2008 15:04:23

Kapat
Şifremi Unuttum?