.

FlashLab

2005/Dec/26

CREATE : 25-12-05

VERSION : FLASH 8

I do this work for answer a question in TFD about drawing circle and after I finish for method, I just know that it can apply for create polygon too, so I apply code to be polygon drawing method.

In this work I try to use many technique such as prototype , recursive function, setInterval and drawing API function. At first I got original code in kirupa tutorial which teach about circular movement and I use that code for developing.

About method you can drawing polygon in all timeline that you want (I have test for only main timeline first). It still don't support for direction of drawing, but not so hard to modify.

About this work I try to draw many polygon in movieclip that create by "createEmptyMovieClip" and I try to random for quantity too. A problem that I found is that cause error when I press on create button many times while polygon still don't finished drawing. The problem is setInterval function still run and don't know object to reference, so I have to check for finishing of drawing and enable button to click again. (Other method is clearInterval for all ID before remove movieclip).

I have ever coded snow method that I tried to create "recusive setInterval function". So I use that code for doing with this work and look interesting.

This is source for polygonDrawing (copy and place on main timeline)

MovieClip.prototype.drawPolygon = function(side, xcenter, ycenter, radius, degree, thickness, color, alpha, speed, path, option) {
if (option == undefined) {
if (arguments.length != 9) {
trace("parameter not correct")
return "";
}
this.point = {side:side, radius:radius, speed:speed, xcenter:xcenter, ycenter:ycenter, degree:degree, degreeCollect:0};
this.lineStyle(thickness, color, alpha);
var radian = (this.point.degree/180)*Math.PI;
this.moveTo(this.point.xcenter+Math.cos(radian)*this.point.radius, this.point.ycenter-Math.sin(radian)*this.point.radius);
this.point.ID1 = setInterval(drawPolygon, 0, side, xcenter, ycenter, radius, degree, thickness, color, alpha, speed, this, "1");
} else if (option == "1") {
clearInterval(path.point.ID1);
path.point.ID2 = setInterval(drawPolygon, speed, side, xcenter, ycenter, radius, degree, thickness, color, alpha, speed, path, "2");
} else if (option == "2") {
with (path.point) {
var drawS = 360/side;
degree += drawS;
degreeCollect += drawS;
var radian = (degree/180)*Math.PI;
x = xcenter+Math.cos(radian)*radius;
y = ycenter-Math.sin(radian)*radius;
path.lineTo(x, y);
if (degreeCollect>=360) {
trace("clear")
clearInterval(ID2);
delete path.point;
}
}
}
};
_root.drawPolygon(5, 100, 100, 50, 20, 2, 0x006666, 100, 50);

and when you want to draw you can write as here.

path.drawPolygon(side, xcenter, ycenter, radius, degree, thickness, color, alpha, speed)

side : quantity of size of polygon.

xcenter: center point of polygon in x axis

ycenter: center point of polygon in y axis

radius: radius of polygon (from center to first drawing point)

thinkness, color, alpha : properties of polygon.

speed: speed of drawing (Interval time for setInterval function. Low number make it fast drawing)

2005/Sep/27

1. หลังจากได้ระบบการเคลื่อนที่ในโลก 3 มิติแล้ว จึงได้ทดสอบสร้างตัวละครที่เดินไปมาได้ โดยตัวละครแต่ละตัว จะเคลื่อนที่โดยใช้พิกัดจาก mc ที่เคลื่อนที่ไปมาแต่ซ่อนไว้ นอกจากนี้ได้ทำการทดสอบ มุมมองที่มองเห็นโดยนำค่าองศาที่แตกต่างระหว่างตัวเรากับวัตถุมาคิด

flash: mx2004

การควบคุม : ใช้คีย์บอรด์ลูกศร เดินไปมา และสามารถกดปุ่ม Ctrl หรือ ปุ่ม Space bar เพื่อปรับมุมกล้องขึ้นลงได้

Note ระดับความลึกของตัวละครแต่ละตัวยังไม่ถูกต้องนัก

2. ต้องการทดสอบว่า เวลาคนเราหันไปมา จะเห็นมุมมองของด้านข้างวัตถุว่ามีลักษณะเป็นเช่นไร สมจริงหรือไม่จึงสร้างวัตถุ 3d จากโปรแกรม swift 3d เข้ามาใช้ทดสอบว่ามีความสมจริงหรือไม่

flash: mx2004

การควบคุม : คลิกที่แฟลชแล้วใช้ปุ่มลูกศร เดินไปมา

Note สำหรับ engine ที่ทดสอบนี้ ได้ลองคิดจากสภาพความเป็นจริง แต่ยังขาดองค์ประกอบบางจุดเช่น ระยะห่างจากวัตถุตามแนวขวางซึ่งมีผลต่อองศาการมองเห็น จึงได้เลิกใช้ engine นี้ไปแล้วก่อนที่จะพัฒนาไปใช้ eigine ตัวที่ใช้ทำ สวนพลุ

2005/Sep/27

1. นำความรู้ด้านตรีโกณมาในการควบคุมการเคลื่อนที่ของมูฟวี่คลิป รวมทั้งทดสอบการมองเห็นระหว่างวัตถุ กับเป้าหมาย และทดสอบค่าต่างๆ

2. หลังจากทดสอบระบบตรีโกณเรียบร้อยแล้วจึงนำมาแปลงค่าและใช้หลักการแสดงภาพสามมิติมาประยุกต์ ให้เกิดภาพแบบ 3d

flash: mx 2004

วิธีการทดสอบ โดยการคลิกบนตัวแฟลช แล้วใช้ปุ่มลูกศรในการเคลื่อนที่