อนุบาลงาน ActionSctipt

เริ่มโพสต์โดย ej_sing, 10 พ.ย. 2007, 00:44 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

poloh

อันนี้เอาพวกคำสั่งวาดเส้นมาลองทำอะไรแปลกๆได้หลายอย่างเหมือนกัน

http://img2.f0nt.com/flash/86d3ec91fa83f186f2cdee1c119062fe.swf

http://img2.f0nt.com/flash/9af6bc246a895a9798851dc1a97a0b21.swf

http://img2.f0nt.com/flash/2af848af2f1136e963d56a312f2c725c.swf

แต่ทำงานปกติ คงไม่ค่อยได้ใช้มันเท่าไร :42:
ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

จักรี

โว้ว  โว้ว ฮะ โฮ่ วะ วะ วะวะวะวะวะวะว้าวววววววววววววววววววว  ว้ายยย กรี๊ดดดดดดดดด  โว้ววววย ว.....
ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย

iannnnn


จักรี

อ้าว มัวแต่ตะลึง   เลยลืมถามเลยครับ  ว่า นี่  ใช้ as 3 หรือ 2  ครับเนี่ย
ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย

poloh

ใช้แค่ 2 ครับ

3 ยังเขียนไม่เป็น  :41:
ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

หนุ่ม

Reading Learning & Sharing

poloh

อยากจะบอกว่า มันบังเอิญนะครับนั่น :52:

ที่ทำ Drawing pad 1 กับ 2 ออกมาได้เพราะความบังเอิญล้วนๆ
(เพราะต้องการทำแบบ4.3 นั่นแล)

ไว้เดี๋ยวจะอธิบาย การทำ drawing pad 1 กับ 2 ให้ครับ

โค้ดยาวประมาณ 50 บรรทัดเท่านั้น เผื่อใครจะเอาไปอแด๊ปกับงานอื่น
ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

ยุนเอ



แบบ 4.3 เหมือนว่าไม่ต้อง drag นะครับ แค่ลากผ่านก็เป็นแล้ว

แต่ชอบ 4.3 สุดๆ ครับ  :25:
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

TONG.KA.SHELOW

ทำยังไงถึงจะได้โปรแกรมเขียนฟอร์ทค่ะ
พูมี่ พูมี่มาแย้ววว

TONG.KA.SHELOW

สาวกใหม่ค่ะ  อยากเขียนฟอร์ทเป็นจังเลย :33:
พูมี่ พูมี่มาแย้ววว

จักรี

มันเป็นโปรแกรมใหม่เหรอครับ เจ้า ฟอร์ท เนี่ย   เหมือนกับ  flex มั้ยอ่ะ
ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย

ej_sing

 :14: สุดยอดๆๆๆ แตะเปลี่ยนให้ poloh สอนต่อเลยละกัน ผมหมดแล้ว (ฝีมือ  :05: และเวลา)

poloh

 :07: อย่าเพิ่งครับพี่ จะรีบเปลี่ยนไปไหน

ผมเอง หมดอันนี้ ก็หมดมุขแล้ว :31:
ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

poloh

#238
เบิ้ลเลยละกัน

อันนี้โค้ดของตัว drawing pad1

หลักคร่าวๆ ที่ผมทำก็คือเกี่ยวกับการเคลื่อนไหวของเม้าท์
ยิ่งจังหวะนั้น เคลื่อนไหวเร็ว ตัว clip นั้น ก็จะเคลื่อนที่เร็วขึ้นด้วย

ก็เลยต้องมีตัวแปรที่ชื่อว่า oldX , oldY , newX , newY
เพื่อเก็บค่าของตัวแปรเหล่านั้่นว่า แต่ก่อนกับ ปัจจุบัน เม้าท์ของเราอยู่ระยะห่างกันเท่าไร
(เพื่อใช้ในการคำนวณความเร็วของการเคลื่อนที่ของเม้าท์)

ซึ่งเวลาที่จะเกิดพวกนี้ จะขึ้นตาม frame rate ของที่เราสร้างไว้
(หมายถึงในโค้ดที่ผมเขียนนะ)

เพื่อให้แต่ละตัวมีการเคลื่อนไหวของตัวมันเอง
ผมก็เลยสร้าง movie clip ให้มัน แล้วก็เซตค่าพวก speed เก็บไว้ที่ตัวมันเอง
(จะเห็นว่ามีตัวแปรที่ชื่อ obj อยู่  ตัวแปรนี้จะเพิ่มค่าไปเรื่อยๆ
เพื่อไม่ให้ชื่อตัวแปร หรือ movieClip มันซ้ำกัน)

คำสั่งวาดรูปงานนี้ จะเห็นว่า ผมเขียนเส้นใส่ตัว movieClip ที่ผมสร้างมาใหม่เลย
ดังนั้นเวลาย้ายตัว movie เส้นก็จะย้ายไปด้วย

---------------------------------------------------------------------------------
เพิ่มเติม เมื่อกี้ลืมอธิบาย  :42:
ตัว mc.counter จะ เป็นตัวนับเรื่อยๆว่า ตัวนี้วิ่งครบ 100  frame หรือยัง ถ้าครบแล้วจะลบตัวเองออก
เพราะถ้ามี movie clip มากๆแล้วนั้น มันจะกระตุก

อ้างอิง
obj = 0;
_root.onMouseDown = function(){
   counter = 3;
   isDrawing = true;
   newx = _root._xmouse;
   newy = _root._ymouse;
}
_root.onMouseMove = function(){
   if(isDrawing == true){
      oldx = newx;
      newx = _root._xmouse;
      oldy = newy;
      newy = _root._ymouse;
      obj++;
      counter += 0.1;
      if(counter > 10){
         counter = 0
      }
      _root.createEmptyMovieClip("line"+obj,obj);
      size = Math.abs(counter-5);
      var myMc:MovieClip = eval("line"+obj);
      eval("line"+obj).lineStyle(size,0xaaff00,100);
      eval("line"+obj).moveTo(oldx,oldy)
      eval("line"+obj).lineTo(newx,newy);
      eval("line"+obj).endFill();
      eval("line"+obj).speedx = newx - oldx;
      eval("line"+obj).speedy = newy - oldy;
      eval("line"+obj).counter = 0;
      eval("line"+obj).onEnterFrame = function(){
         this.counter++;
         this._x += this.speedx;
         this._y += this.speedy;
         if(this.counter > 100){
            delete this.onEnterFrame;
            removeMovieClip(this);
         }
      }
      myMc.useHandCursor;
      updateAfterEvent();
   }
}
_root.onMouseUp = function(){
   isDrawing = false;
}

ปล. drawing pad2 จะเป็นการกลับค่าของ speedX กับ speedY เท่านั้นเองแล :52:
ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

ej_sing

โอ้ว ไว้จะบวกให้ ตอนนี้บวกยังไม่ได้  :08:

ทำไมต้อง updateAfterEvent(); ครับ ใส่กับไม่ใส่ต่างกันตรงไหนครับ


ชงกันเองนี่ล่ะ  :30: (ขอคำตอบแบบแจ่มๆหน่อยนะครับ เอาแบบเข้าใจง่ายๆ)

SMF 2.1.7 © 2026, Simple Machines