วิธีทำให้ TextField ใน Flash สามารถแก้ไขข้อมูลโดย Flex ได้ (พร้อมทิป) by

31
Oct
0

โดยปกติแล้วถ้าเราสร้างปุ่มขึ้นมาใน Flash แล้วต้องการให้มันมีตัวหนังสือ (label) เราก็จะสร้าง text field ไว้ในปุ่มนั้นๆเลย ทีนี้ปัญหามันอยู่ที่ว่า ถ้าเรา import ไปใช้กับ Flex แล้วเราจะไม่สามารถอ้างอิงถึง property ที่เป็น Text Field นี้ที่อยู่ใน button ได้ เช่น

text_button.txtOnButton.text = “change”; แบบนี้จะทำให้เกิด Error ได้ จึงมีวิธีมานำเสนอครับ

การสร้างปุ่มที่ใส่ text field ไว้ด้านในแบบทั่วไป ซึ่ง refer ถึง text field ไม่ได้

การสร้างปุ่มที่ใส่ Text Field ไว้ด้านในแบบทั่วไป ซึ่ง refer ถึง Text Field ไม่ได้

เนื่องจากปุ่มเป็น Button จึงเข้าถึงส่วนต่างๆข้างในด้วยโค้ดไม่ได้

เนื่องจากปุ่มเป็น Button จึงเข้าถึงส่วนต่างๆข้างในด้วยโค้ดไม่ได้

เมื่อรันใช้ได้ปกติ

เมื่อรันใช้ได้ปกติ

วิธีแก้ขั้นแรกให้เรา Cut ตัว Text Field ที่อยู่ในปุ่มออกมาก่อนแล้ว New Symbol (Ctrl + F8) แล้วให้เลือกเป็น Movie Clip (ไม่ใช่ Button) จากนั้นก็นำ Text Field ก่อนหน้ามาวาง เท่านี้เราก็สามารถเข้าถึงตัว Text Field จากสคริปได้แล้วล่ะครับ เช่น mcButton.txtOnButton.text = “change”;

ให้เรา cut text field ออกไปก่อน

ให้เรา cut Text Field ออกไปก่อน

นำปุ่มเปล่ามาใส่ใน Symbol พร้อมกับ text field ก่อนหน้ามาใส่

นำปุ่มเปล่ามาใส่ใน Movie clip พร้อมกับ Text Field ก่อนหน้ามาใส่

แต่! มันจะมีปัญหาคือตัว Text Field จะบังตัวปุ่มทำให้เวลาชี้ในระยะกล่อง Text Field มันจะถือว่าไม่ได้ Hover ปุ่มอยู่เลย วิธีแก้ก็คือเขียนสคริปตั้ง Property mouseEnabled ให้เป็น  false สำหรับ Text Field ครับ เท่านี้ก็ใช้งานได้ปกติแล้วล่ะครับ

เวลาชี้แถวตัว text ปุ่มจะไม่ขยายและ cursor ไม่เปลี่ยนเป็นรูปมือ

เวลาชี้แถวตัว text ปุ่มจะไม่ขยายและ cursor ไม่เปลี่ยนเป็นรูปมือ

ใส่ ActionScript ตั้งค่า Property ของ text field เรา mouseEnabled = false;

ใส่ ActionScript ตั้งค่า Property ของ Text Field เรา mouseEnabled = false;

เมื่อรันใช้ได้ปกติ

กลับไปเป็นรูปมือดังเคย

วิธีเปิด mysql 2 instance ในเครื่องเดียวกัน by

31
Oct
0

ปกติคงไม่ค่อยมีใครคิดจะเปิด mysql 2 instance เท่าไหร่ แต่พอดีว่าผมมีเคสที่ต้องใช้นั่นก็คืออยากจะเปิดฐานข้อมูลที่ backup ไว้ (ซึ่งเก็บไว้ในเครื่องเดียวกัน) ด้วย Percona XtraBackup ขึ้นมาเพื่อดึงเอาข้อมูลเก่าแค่บางส่วนที่ทำพลาดไปมาใช้ ซึ่งก่อนหน้านี้ได้ทำการ tar gzip ก้อน backup db ขนาด 60GB ไปลงเครื่องอื่นเพื่อรัน แต่ก็ส่งข้อมูลข้ามเครื่องได้ช้าเหลือเกิน กว่าจะ untar เสร็จ ไรเสร็จล่อไป 1-2 ชม. เสียเวลาอย่างยิ่งยวด แต่เนื่องจากผมจำได้ว่าเคยอ่านเจอในเว็บ percona ว่าก้อนที่ backup ออกมามันก็คือ datadir ของ mysql เฉยๆ นี่แหละ ฉะนั้นในทางทฤษฏีแล้วในเมื่อมันก็คือตัวข้อมูลของฐานข้อมูลโดยตรง งั้นสิ่งที่ต้องทำก็น่าจะแค่รัน mysql อีก instance แต่ชี้ไปที่ข้อมูลไปที่ข้อมูลที่เรา backup ไว้ให้ได้เป็นอันจบ มาลองกันเลยดีกว่า

  1. mkdir /var/lib/mysql2/ ขึ้นมา หรืออาจ copy จาก db ปัจจุบันก็ได้ (ถ้าจะ copy ต้องปิด mysql ก่อน copy) หรือถ้าจะรันจาก backup ตรงๆ อย่างผมก็ไม่ต้องทำอะไร
  2. chown -R mysql:mysql /path/to/ข้อ 1
  3. copy my.cnf ที่ใช้รัน ตั้งชื่อใหม่เป็น my2.cnf (หรือถ้า debian ก็ทั้ง /etc/mysql เป็น /etc/mysql2)
  4. edit my2.cnf ที่ copy มาดังนี้
    - port – แก้ 3306 เป็น 3307 (หรืออื่นๆ ที่ไม่ได้ใช้งาน)
    - datadir – path ที่เราสร้างในข้อ 1
    - socket – เปลี่ยนชื่อ mysql.sock เป็น mysql2.sock
    - innodb_data_home_dir - path ที่เราสร้างในข้อ 1
    -  innodb_log_group_home_dir – path ที่เราสร้างในข้อ 1
    -  innodb_buffer_pool_size – อันนี้จริงๆ ไม่ต้องแก้ก็ได้ แต่ถ้าเครื่อง ram น้อย แล้วไฟล์ my.cnf ต้นฉบับตั้งค่าไว้เยอะก็ลดลงไปหน่อยไม่ให้ล้น ram ที่มี
  5. mysql_install_db –user=mysql –datadir=/path/to/ข้อ 1
  6. mysqld_safe –defaults-file=/path/to/my2.cnf &
  7. mysql -S /path/to/mysql2.sock -uroot -p
    เพื่อทดสอบการเชื่อมต่อ ถ้า login ได้แสดงว่าทำสำเร็จ แล้วใน config phpmyadmin (config.inc.php) ก็อาจไปเพิ่มบรรทัดนี้
    $cfg['Servers'][$i]['port'] = ’3307′;
    ก็จะเข้าไปดูข้อมูลหรือ export ข้อมูลแบบใช้ GUI ได้ตามสะดวกโยธิน
  8. mysqladmin -S /path/to/mysqld2.sock shutdown เพื่อปิด instance เวลาเลิกใช้งาน

เปิด mysql ได้สอง Instance แล้วเรียบร้อย จะ copy ข้อมูลข้ามกันไปมายังไงก็ได้แล้ว ง่ายแค่นี้เอง :)

วิธี เพิ่ม Dungeon แมพ ต่างๆ by

31
Oct
0

-แมพในเกม จะมีอยู่ 2 ส่วน คือ
แมพปกติ (adventure) กับแมพ (event)
โดย วิธีการ เพิ่มนั้น ไฟล์ จะอยู่ใน public/assets/raw_data/dungeon_new
แบ่งเป็น
**สิ่งที่ต้องจำ
mon1_chance : mon1
mon2_chance : mon2
mon3_chance : mon3
mon4_chance : mon4
mon5_chance : mon5
เอาไว้ใช่สร้างมอนเตอร์ โดย mon1_chance จะเก็บ โอกาส เกิด มอนเตอร์ 1 ดาว
mon1 เก็บ ชื่อแฟมิลี่ของมอนเตอร์ 1 ดาวที่มีโอกาสเจอในแมพนั้นๆ โดยขั้นด้วยเครื่องหมาย ‘,’ และ ‘-’ตามด้วยตัวเลข เป็นการบอก form ของมอนเตอร์
**box_chance** e – a ะเก็บ % การดรอป กล่องแต่ละชนิดหลังจบการสู้กับมอนเตอร์ *มีเฉพาะ แมพบอส
**treasure_box** เก็บเงินที่จะได้จากกล่องแดง โดยมีโอกาส ออก 8 อย่างเท่าๆกัน โดยใชั # ขั้นเงินรางวัลไว้ *มีเฉพาะ แมพบอส
*magic_box1* จะคล้ายๆกับ treasure_box แต่จะมีการลดเอนนิจี้ เงิน และได้ของรางวัล โดย
magic_box1 – 3 จะลด energy
magic_box4 – 5 ลดเงิน
magic_box6 – 7 ให้ของโดยใช้ ไอเท็มไอดี#จำนวนที่ได้
magic_box8 ให้ ticket_silver โดยไส่แค่จำนวน
*****************************************
money_box_s1 – 4 ใส่เงิน คล้ายๆกับ treasure_box คือใส่เงินไปอย่างเดียว
mini_box_1-7 ใส่ไอเท็มลงไปโดย
mini_box_1 ใส่กล่องที่จะแจก โดยไส่เป็น E-c ระบบจะหากล่องของแมพนั้นๆเอง
mini_box_2 จำนวน ticket ที่่ได้
mini_box_3 ให้ของโดยใช้ หรัส-จำนวนที่ได้ || eS คือ energy เล็กเป็นต้น
mini_box_4 ให้ของโดยใช้ หรัส-จำนวนที่ได้ || mS คือ mbเล็กเป็นต้น
mini_box_5 แร่อัพเกด ระบบจะหาเองว่าได้แร่อาไร
mini_box_6 Basic Evo Disc / Advance Evo Disc
mini_box_7 cube
******
ต่อไปก็ถ้าแมพที่มี mini boss ช่องพวกนี้ก็จะมีข้อมูล
miniBoss_id
miniBoss_level
minion_id
minion_level
exp
money
ต่างโดยเราใส่ค่าลงไปได้เลยอันน้ไม่ยาก
การ gen ลง ดาต้าเบต
แมพปกติ (adventure)
tester/add_dungeon_db
แมพ (event)
generate/event_dungeon_gen
โดยในส่วนของ แมพ (event) ข้อมูลจะเขียนไว้เป็น แทมเพจ อยู่ในฟังก์ชั่นแล้ว แค่แก้ไขแล้วรัน มันก็จะเขียนลงดาต้าเบตให้แล้วว

**สุดท้ายเวลา จะแก้ไขข้อมูลของ dungeon ทำ แบ๊กอพไว้ให้ดีเพราะ แก้ไข เมื่อมันพังยากมาก ฮ่าๆๆ**

วิธีการล๊อคตำแหน่งของสูตร Excel by

30
Oct
2

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


เมื่อคุณใส่ข้อมูลรายได้เสร็จแล้วคุณอยากจะใส่สูตรคำนวนไปเลยว่า เดือนๆนึงคุณต้องใช้จ่ายค่าอะไรเท่าไรบ้าง ก็เขียนสูตร excel จับคูณไปเลย เขียนสูตรเสร็จคุณก็ลากมันลงมาเลย เพื่อจะให้มันคูณลงมาทั้งตาราง แต่ว่ามันจะเกิดปัญหาแบบนี้ครับ


Excel เจ้ากรรมมันดันคิดให้คุณเองว่าคุณจะเอาช่องข้างบนมาคูณกับช่องด้านซ้ายเหมือนเมื่อกี้ ไม่ใช่คูณกับช่องบนสุดที่เป็นข้อมูลรายได้ที่เราต้องการ วิธีการแก้คือล๊อคตำแหน่ง Row ให้มันคูณเฉพาะข้อมูลของแถวที่ 2 ครับ ด้วยการเปลี่ยนจาก C2 เป็น C$2 ครับ


เท่านี้เราก็จะได้ผลลัพธ์อย่างที่เราต้องการ จากนั้นเราต้องการลากสูตรให้มันคูณทุกเดือนอีก …. มันก็จะเจ๊งอีกครับ


เพราะว่าคราวนี้มันก็ไม่เอารายได้ไปคูณกับ % ที่เราตั้งไว้ข้างซ้ายแล้วครับ มันดันเอาไปคูณกับงบแทน ก็เลยกลายเป็นตัวเลขมหาศาลแบบที่เห็นนี่ ก็ต้องล๊อคมันเหมือนเดิมครับ ให้กลับไปเปลี่ยนสูตรให้ตั้งแต่แรก จาก B3 เป็น $B3 แทน มันก็จะล๊อคให้คูณเฉพาะข้อมูลของ Col B ครับ


ก็จะได้ผลลัพธ์ที่ถูกต้องแล้วครับ

สรุปคือ จะล๊อค Row ใส่ $ หน้าตัวเลข เช่น A$1
จะล๊อค Col ใส่ $ หน้าตัวอักษร เช่น $B2
อยากล๊อคทั้งคู่เลย ใส่มันทั้งคู่ครับ เช่น $C$3

ดาวน์โหลดไฟล์ตัวอย่าง

(English) [Technique] layer:color by

29
Oct
0
https://dl.dropboxusercontent.com/u/59196759/BLOG/06/step.jpg

https://dl.dropboxusercontent.com/u/59196759/BLOG/06/step.jpg

วิธีลงสีรวดเร็วประหยัดเวลา เหมาะกับคนเข้าใจเรื่องแสงเงาพอสมควร เหมาะกับคุณหนูหนูทุกคลล์

สเตปตามภาพครับ

1 วาด

2 ลงสีพื้นคร่าวๆแบบขาวดำ

3 เก็บเงา

4 ลงสีที่ต้องการลงไปด้วยการสร้าง layer ใหม่ขึ้นมาคลุม

แล้วให้ layer นั้น อยู่ใน mode color แล้วก็ลงสีตามที่ชื่นชอบ

5 เก็บนู่เก็บนี่นิดหน่อยสไตล์คุณ ก็เสร็จแล้ว ง่ายจริงๆ

**อย่าลืมเอากลับไปลองทำที่บ้านนะครับเด็กๆ บายยย

กู้เงิน | เศรษฐกิจพอเพียง | สินเชื่อบุคคล | สมัครบัตรกดเงินสด | สินเชื่อ | เงินกู้ด่วน | ยืมเงินทรูมูฟ | เงินด่วนนอกระบบ