คือว่าผมกำลังทำ portfolio โดยใช้ flash cs3 เป็นงานประเภทออฟไลน์ใส่ซีดี มีปัญหาบางประการที่ผมติดอยู่ผมขอคำชี้แนะหน่อยนะครับ
1 ถ้าต้องการทำให้เวลาคลิกปุ่มเปิดไปที่หน้านึงแต่เป็นการเปิดที่เปิดเพิ่มขึ้นมาอีกหน้าต่างนึงด้วยไม่ไช่เปิดทับที่หน้าต่างเดิม ต้องทำยังไงเหรอครับ เท่าที่ทราบต้องเติมสคริปต์, "_blank"ลงไปหลังชื่อของpageที่ผมต้องการให้เปิดใช่ไหมครับ ซึ่งผมเคยลองทำแล้วแต่มันได้ผลแต่กับแบบที่สั่งให้เปิดหน้าเว็บครับ ผมใช้สคริปต์นี้
on (release) {
getURL("ชื่อเวป", "_blank");
}
มันสามารถทำให้เปิดไปที่หน้าเวปแบบที่เปิดเพิ่มขึ้นมาอีกหน้าต่างนึงด้วยได้ แต่ว่างานของผมมันเป็นงานประเภท off line ใส่ซีดีแล้วก็ไม่ได้ต้องการให้เปิดไปที่หน้าเวปไหนเลยแต่ต้องการให้มันเปิดไปที่หน้าแฟชที่อยู่ในซีดีที่ผมสร้างขึ้น ตัวอย่างสคริปต์ที่ผมใช้เวลาต้องการให้เปิดไปที่หน้าที่ผมสร้างไว้ที่เฟรมที่ 80
on (release) {
gotoAndPlay("80");
}
สคริปต์นี้มันจะเปิดได้แต่เป็นการเปิดที่เปิดทับที่หน้าต่างเดิมครับ ผมเคยลองเอา, "_blank"ใส่เข้าไปหลัง "80" แล้วมันก็ไม่ได้ครับ หนำซ้ำยังเกิดอาการผิดปกติด้วย คือเวลากดปุ่มที่ใส่ _blank เข้าไปปุ่มนั้นมันจะเปิดหน้ามั่วเลยครับกดทีนึงก็เปิดไปที่หน้านึงกดอีกทีก็เปิดไปที่อีกหน้านึงสลับไปเรื่อยๆเลย ที่ถูกต้องแล้วผมต้องเขียนสคริปต์ยังไงเหรอครับ หรือว่าผมเขียนสคริปต์ถูกแล้วแต่มันจะต้องไป publish setting ให้เป็นไฟล์ swf ,exe อะไรก่อนหรือเปล่า ซึ่งผมก็ลองแล้วมันก็ไม่ได้เหมือนกัน หรือเป็นเพราะว่าการที่ผมทำหน้า ต่างๆในไฟล์ flaเดียวกันมันจะเกี่ยวไหมครับ ใครรู้ช่วยบอกหน่อยเถอะครับ
2 การที่สัญญาณเล็งของเม้าไม่ตรงกับรูปของเม้าต้องแก้ยังไงเหรอครับ เวลาผมทำงานที่มีการเขียนสคริปต์ยากๆในงานนั้น แล้วพอตอนที่ ctrl+ent ออกมา สัญญาณเล็งของเม้ามันจะไม่ตรงกับรูป(ลูกศรหรือมือ)ของเม้าครับ อย่างเช่นผมทำสกอบาร์ออกมา เวลาที่เอาเม้าไปชี้ตรงแท็กของสกอรบาร์ สมมุติสัญลักษณ์รูปมือชี้ที่แท็กช่วงล่างๆ แต่ตัวสไลด์มันจะไม่เลื่อนลงมาตรงรูปมือที่ชี้ แต่มันจะเลื่อนลงมาที่ตรงด้านบนรูปมือครับ คือสัญญาณเล็งจริงของเม้าไม่ตรงกับรูปมือน่ะครับ ผมเคยทำกับตัวอย่างอื่นเป็นตัวอย่างเกมยิงปืนพอเอ็กพอร์ตออกมาก็เป็นเหมือนกันครับ เท่าที่รู้มันเป็นเพราะผมเขียนสคริปต์ไม่ดีใช่ไหมครับอย่างงี้ผมควรที่จะไปแก้ตรงไหนของสคริปต์เหรอครับ
3 การทำให้ skinของ วิดีโอที่ใส่เข้าไปใน flash มีลักษณะ เหมือนกับ skin ของ youtube ต้องทำยังไงเหรอครับ ผมเคยลองหาวิธีตามเว็บต่างๆ เขาบอกให้ไปโหลด jw-flv-media-player แล้วก็เอา mediaplayer.swf, swfobject.js , video.flv อัพโหลดขึ้นไปที่ web server แล้วเขาก็สอนวิธีแบบที่ทำเป็นเว็บ แต่งานของผมมันเป็นงาน off lineใส่ซีดี แบบนี้ต้องทำยังไงเหรอครับ ( ผมไปโหลด fxcomponents_theme1_mediaplayer_v3.15.zip มาแล้วครับแต่ไม่รู้ว่าจะเอาเข้าไปใน flash ยังไงแล้วก็ไม่รู้ว่าจะต้องทำยังไงต่อ ) ถ้าผมขอตัวอย่างโครงสร้างสคริปต์กับคำอธิบายด้วยได้ไหมครับ(ผมมีความรู้เรื่องสคริปต์แค่เล็กน้อยเองครับ รู้แต่พวกสคริปพื้นฐาน สคริปต์ยากๆส่วนใหญ่ที่รู้คือจำจากตัวอย่างเขามา) หรือว่ามีวิธีอื่นที่ไม่ต้องใช้สคริปต์ไหมครับ คือไม่ต้องให้ skin เหมือนกับของ youtube ก็ได้ ผมแค่ต้องการ skin ที่มันมีเวลาบอกว่าวีดิโอนี้มีเนื้อหาทั้งหมดกี่นาที แล้วก็อยากให้ผู้ดูสามารถที่จะขยายวีดิโอดูเต็มจอได้ ผมเคยนั่งลอง skinวิดีโอที่มีอยู่ทั้งหมดของ flash cs 3 แล้วมันไม่มีแบบนี้เลยครับ
ก่อนอื่น ผมอยากแนะนำให้คุณ orange_juice ช่วยพิมพ์ เว้นวรรคคำถามคุณให้ดีก่อนครับ
อาจจะเรียบเรียงให้ดีก่อน ค่อยพิมพ์ก็ได้ครับ ผมอ่านแล้วยังงงๆ อยู่เลย :08:
เอาเป็นว่าผมสรุปตอบสิ่งที่ผมเข้าใจเลยละกันนะครับ
1. _blank ใช้สำหรับหน้าเว็บครับ และใช้ได้กับคำสั่งเกี่ยวกับการเปิดหน้าเว็บและการดึงข้อมูลผ่านเน็ต เท่านั้นครับ
ส่วนสิ่งที่คุณต้องการ ผมไม่รู้ว่า คือต้องการเปิดหน้าต่าง Flash Projector (หน้าต่าง Flash Player/exe) มาอีกหน้าต่าง
แล้วให้มันเล่นในเฟรมที่กำหนดด้วยหรือเปล่านะครับ
ถ้าใช่เนี่ย ผมขอแนะนำว่า อย่าทำแบบนั้นครับ เพราะเราจัดการมันยาก และผมก็ไม่เข้าใจว่า
จุดประสงค์ที่ทำแบบนั้น ทำไปเพื่ออะไรอะครับ ช่วยขยายความด้วยครับ เผื่อผมจะได้แนะนำวิธีที่ดีกว่าให้
2. ผมไม่เห็นภาพ + สคริปต์ที่คุณเขียน/ใช้งานครับ ผมจึงยังแนะนำให้ไม่ได้
3. เรื่องสกินนี่ ผมแนะนำว่า อย่าไปยุ่งมันครับ แล้วเน้นทำเองตาม Tutorial นี้ดีกว่าครับ
Flash Video Basics 1 (http://www.gotoandlearn.com/play?id=1)
Flash Video Basics 2 (http://www.gotoandlearn.com/play?id=2)
Flash Video Basics 3 (http://www.gotoandlearn.com/play?id=3)
Flash Video Basics 4 (http://www.gotoandlearn.com/play?id=4)
Flash Video Basics 5 (http://www.gotoandlearn.com/play?id=5)
Flash Video Basics 6 (http://www.gotoandlearn.com/play?id=6)
Flash Video Basics 7 (http://www.gotoandlearn.com/play?id=7)
Flash Video Basics 8 (http://www.gotoandlearn.com/play?id=8)
โห ถามละเอียดยิบเลย :25:
ตอบละเอียดเหมือนกัน :25:
อาจารย์ก่อ เจ๋งมากเลยฮะ :12:
:25: โห กำลังหาวิธีอยู่เหมือนกันเลยครับ ขอบคุณจานก่อ + :56:
ขอบคุณ คุณก่อ นะครับที่ตอบให้ แล้วก็ขอโทษด้วยครับที่ทำให้อ่านแล้วงง
1 ผมต้องการทำให้เปิดหน้าต่างไฟล์ exe ขึ้นมาอีกหนึ่งอัน ข้างๆหน้าต่างไฟล์ exe อันที่กำลังดูอยู่ครับ
ตอนนี้ผมกำลังทำ portfolio สมัครงานอยู่ งานที่ผมสมัครคืองานพวกเบื้องหลังรายการทีวี
ทีนี้ผมคิดรายการเกมโชว์ขึ้นมา 1 รายการ เอามาทำเป็น portfolio สมัครงาน( ไม่ค่อยดีมากหรอกครับ ) ซึ่งใน portfolio ของผม ผมสร้างหน้าของรายการนี้ขึ้นมา 1 หน้า เอาไว้เป็นหน้าหลัก ทำหน้าที่อธิบายรูปแบบและวิธีเล่น ของรายการ แล้วที่หน้านี้ก็จะมีตัวอย่างของ vtr คำถาม( เป็นไฟล์วิดีโอ ) ที่ผู้ดูสามารถคลิกเปิดขึ้นมาดูได้
ซึ่งในส่วนของ vtr นี้เอง ที่ผมต้องการทำให้เวลาผู้ดูคลิกดู แล้วมันไปเปิดขึ้นที่หน้าต่างใหม่ ข้างๆหน้าต่างเนื้อหาของรายการ ( เพื่อเวลาที่ผู้ดู ดู vtr แล้วเกิดข้อสงสัยเกี่ยวกับวิธีเล่นและรูปแบบรายการจะได้กดมาอ่านในหน้าเนื้อหา ที่หน้าต่างข้างๆได้ ครับ )
ในหน้าของ vtr ที่ผมต้องการทำให้เปิดขึ้นมาที่หน้าต่างใหม่นี้ จะมีเพียงแค่ ไฟล์วีดิ่โอ กับ ตัวหนังสือที่เป็นคำถามนิดหน่อยเท่านั้นครับ และหน้านี้ก็จะไม่มีปุ่มลิงค์ไปที่หน้าไหนเลย ถ้าเปิดหน้าต่างนี้ขึ้นมาจะทำได้แค่ ดู vtr กด play , stop , fullsceen นอกนั้นไม่สามารถทำอะไรได้เลย ( vtr พวกนี้จะมีความยาวประมาณ 3-5 นาที มีทั้งหมดประมาณ 15-16 vtr แล้วจะมีอยู่ 3 หน้าที่มี 3 vtr อยู่ในหน้าเดียวกัน นอกนั้นจะเป็นหน้าละ 1 vtr ) อย่างงี้จะทำยากไหมครับ ซึ่งผมต้องการทำให้เป็นแบบนี้มากเลยครับ
2 มันเป็นอาการ สัญญาณเล็งของเม้า กับตำแหน่งของ รูปลูกศรของเม้า ไม่ตรงกันครับ ตัวอย่างเช่นผมทำเกมตามในหนังสือ เป็นเกมยิงสัตว์ครับ ในเกมจะมีสัตว์วิ่งไปมา แล้วเราก็ต้องยิงสัตว์พวกนั้นให้โดน ทีนี้ตัวอย่างในหนังสือเขาสร้าง รูปเรด้าปืน ขึ้นมาแทนเม้าที่ใช้ชี้ที่ตัวสัตว์พวกนั้น แล้วก็เปลี่ยนรูปเรด้าปืนเป็นมูฟวี่คลิป เอามูฟวี่คลิปใส่ที่เฟรม ตั้งชื่อ instance ของเรด้าปืนนี้ว่า reda แล้วก็ใส่ สคริปต์ ที่เฟรมว่า reda.startDrag(true); สคริปต์ตัวนี้ทำหน้าที่เพื่อ ล็อคให้จุดศูนย์กลางของ รูปเรด้า อยู่ตำแหน่งเดียวกันกับเม้าใช่ไหมครับ แต่พอผม ctrl+ent ออกมา จุดศูนย์กลางของรูปเรด้าปืน มันไม่อยู่ตำแหน่งเดียวกันกับเม้าน่ะครับ แต่ไอรูปเรด้าปืน มันจะอยู่เยื้องมาข้างล่างขวาของเม้า ครับ เวลาเลื่อนเม้า ไอรูปเรด้าปืนมันก็จะเลื่อนตาม แต่มันจะตามแบบที่ตำแหน่งของมันจะอยู่ข้างล่างขวาของเม้าตลอดครับ ( ไม่รู้ว่าอ่านแล้วจะเข้าใจหรือว่าจะงงมากกว่าเดิมนะครับ ผมแนบรูปแนบไฟล์ ไม่เป็นน่ะครับ ) ผมเคยลองทำกับตัวอย่างอื่น เป็นการสร้างสอร์บาร์ขึ้นมา มันก็จะมีปัญหาแบบเดียวกันเลยครับ คือเวลาเอาเม้าไปชี้ที่แท็กสกอร์บาร์ สมมุติว่าชี้ที่ช่วงล่างของแท็ก ตัวสไลด์มันจะไม่เลื่อนมาตรงตำแหน่งที่เม้าชี้พอดี แต่มันจะเลื่อนมาที่ตำแหน่งเหนือรูปที่เม้าชี้ไปหน่อยครับ คือเอาเม้าไปชี้ที่ตำแหน่งหนึ่งแต่สัญญานจริงๆของเม้าจะอยู่ที่อีกตำแหน่งหนึ่งแบบนี้น่ะครับ ผมคิดว่าผมเขียนสคริปต์ถูกนะครับ แต่อาจจะต้องปรับหรือแก้ค่าอะไรบางอย่าง
:32: ลายตา
ข้อสองนะครับ ให้เข้าไปแก้ไขที่ตัวมูวี่คลิปนั้นๆเลยครับ ตอนนี้มันจะเป็น x:0 , y:0 ครับ
ให้จับแล้ว align center (stage) หรือเอามันวางกลางจุด ครับ มันถึงจะ อยู่กลางเม้าส์เวลา startDrag();
ขอถามต่อได้ไหมครับ ไม่รู้ว่าช่วงนี้คุณก่อไม่ว่างหรือไม่อยากตอบให้ผม แต่ผมก็จะขอถามอีกนะครับ
3 ตัวอย่างที่คุณก่อเอามาให้ดูเจ๋งมากครับ ขนาดผมรู้เรื่องสคริปต์ไม่มากเท่าไหร่ ดูแล้วยังทำตามได้ แต่ว่าในตัวอย่างนี้มันก็ไม่มีเรื่อง การทำวิดีโอ full sceen กับ การทำเวลา ให้ดูอีกแหล่ะครับ ผมก็เลยไปค้นเพิ่ม ตามเวปต่าง ๆ
แล้วตอนที่ผมกำลังค้นอยู่นั้น ผมจำได้ว่า ผมเคยโหลด tutorial สอนการทำสกินจาก ffiles.com มา ( หัวข้อ media players ไฟล์ชื่อ XML FLV Player http://www.ffiles.com/flash/media_players/xml_flv_player_2256.html (http://www.ffiles.com/flash/media_players/xml_flv_player_2256.html) )
ผมเคยโหลดมาดู ก่อนที่จะมาโพสถามด้วยครับ แต่ว่าตอนนั้นผมดูแล้วก็ทำตามไม่เป็น เพราะว่ามันเป็นตัวอย่างที่อยู่ในรูปของไฟล์ flash ต้องมาแกะเอา จนหลังจากที่ผมได้ดูตัวอย่างที่คุณ ก่อ เอามาให้ดูแล้ว ผมก็สามารถแกะ ตัวอย่างของไฟล์นี้ได้ครับ ( คือทำตามแบบของเขาเฉยๆ นะครับ แต่เรื่องสคริปต์นี่ก็ไม่รู้อะไรละเอียดมาก )
ซึ่งในตัวอย่างนี้มันจะมีลูกเล่น เพิ่มเข้ามา มากกว่าตัวอย่างที่คุณก่อเอามาให้ดู ผมก็เลยคิดว่าจะดัดแปลง ตัวอย่าง ของสกินนี้ เป็นสกินของวิดีโอผม แต่มันมีปัญหาว่า
ในตัวอย่างนี้เขาใช้วิธี กำหนดชื่อของไฟล์วิดีโอไว้ที่ ไฟล์ .xml ซึ่งมันทำให้ผมไม่สามารถเปลี่ยนชื่อของไฟล์วิดีโอ ที่ต้องการให้เล่นได้ ( อาจจะเปลี่ยนได้แต่ผมไม่รู้วิธี ) แบบนี้พอจะมีวิธีแก้ไหมครับ
( ยกตัวอย่างเช่น ในตัวอย่างที่คุณ ก่อ เอามาให้ดูนั้นสามารถที่จะเข้าไปเปลี่ยนชื่อ ของไฟล์วิดีโอที่ต้องการให้เล่น ที่สคริปต์นั้นได้ใช่ไหมครับ
ถ้า portfolio ของผมมีไฟล์วิดีโอ ที่ต้องการให้เล่น 5 ตัว ผมก็ สร้างสกิน สร้างสคริปต์ แบบนี้ขึ้นมา 5 อัน แล้วก็ไปเปลี่ยนชื่อ ของไฟล์วิดีโอ ที่สคริปต์ ของสกินนั้น เป็นชื่อของไฟล์วิดีโอตัวที่ผมต้องการให้เล่น แค่นั้นก็ได้แล้ว
แต่ว่าในตัวอย่างนี้เขาใช้วิธีกำหนดชื่อไว้ที่ไฟล์ .xml ครับ แล้วใน portfolio ของผมก็มีไฟล์วิดีโอที่ต้องการให้เล่นมากกว่า 1 ตัวด้วยครับ )
ตัวอย่างส่วนหนึ่งของสคริปต์ การทำสกินวิดีโอที่ผมโหลดมา
var xml:XML = new XML();
xml.onLoad = function():Void {
ID1 = String(xml.firstChild.childNodes[1].firstChild.nodeValue);
ID2 = String(xml.firstChild.childNodes[3].firstChild.nodeValue);
ID3 = String(xml.firstChild.childNodes[5].firstChild.nodeValue);
ID4 = String(xml.firstChild.childNodes[7].firstChild.nodeValue);
ID5 = String(xml.firstChild.childNodes[9].firstChild.nodeValue);
ID6 = String(xml.firstChild.childNodes[11].firstChild.nodeValue);
ID7 = String(xml.firstChild.childNodes[13].firstChild.nodeValue);
//video url
stage_video.contentPath = ID1;
//video text
info.text = ID2;
//bg picture
if ((ID4 == "no") || (ID4 == "undefined") || (ID3 == "yes")) {
} else {
bg.loadMovie(ID4);
}
maskBtn.enabled = false;
maskBtn._visible = false;
maskBtn2.enabled = false;
maskBtn2._visible = false;
อันนี้คือส่วนที่อยู่ใน ไฟล์.xml
- <data>
//Video Url
<url>video.flv</url>
//Video Text
<text>The two talking cats</text>
//Auto-Start(yes/no)
<ans>no</ans>
//Video Picture (if you don't want at start to see a picture type "no")
<pic>no</pic>
//Start Scene from the video (if you chose a picture then type "no")
<ans2>no</ans2>
//Scene percentage (a percentage from the video (number 0 from 100))
<per>0</per>
//Volume(select the default volume. Number from 0 to 100)
<vol>75</vol>
</data>
ขอถามอีกเรื่องครับ เรื่องการทำ วีดิโอ fullsceen ผมไปค้นตามเวบต่างๆ เจอมาหลายสคริปต์เลยครับ แต่ว่าพอเอามาลองทำแล้ว มันเป็นการทำ fullsceen แบบทำให้ทั้งหน้าของแฟช fullsceen ไปด้วย ไม่ใช่เฉพาะส่วนที่เป็นวิดีโอเท่านั้นที่ fullsceen
ตัวอย่างสคริปต์ที่ผมเจอ
fscreen.onPress = function() {
if (!fl) {
fl = true;
Stage["displayState"] = "fullScreen";
} else {
fl = false;
Stage["displayState"] = "normal";
}
}
ถ้าต้องการให้เฉพาะส่วนวิดีโอเท่านั้น fullsceen ต้องทำยังไงเหรอครับ
:55: ตกลง "สกิน" ที่พูดถึงนี่คืออะไรครับ? ดูจากที่คุณพิมพ์มา มันคือส่วนที่โหลดไฟล์มาแสดงมากกว่า รูปร่างหน้าตาอะครับ เลยงงๆ นิดนึง
ส่วน YouTube เค้าใช้โค้ด Fullscreen ตัวนั้นแหละครับ
แต่เพราะตัวเล่นวีดีโอคือ Flash ก็เลยทำให้มัน Fullscreen ไปทั้งตัว Flash
แต่ถ้างานของคุณเป็น Flash แล้วมีตัวเล่นวีดีโอเป็นส่วนเล็กๆ ในแฟลชนั้น..
จำเป็นที่จะต้องคัดตัวเล่นวีดีโอ ไปไว้เฟรมอื่นแยกต่างหากครับ แล้วสั่ง Fullscreen เอา
3.1 สกิน ที่ผมพูดถึงคือ รูปร่างหน้าตา ของปุ่มควบคุมวิดีโอครับ ซึ่งพอเราสร้างรูปร่างหน้าตาของปุ่มควบคุมวิดีโอขึ้นมาแล้ว เราก็ต้องสร้าง สคริปต์ คำสั่ง ของปุ่มควบคุมวิดีโอตัวนั้น ขึ้นมาด้วยใช่ไหมครับ เพื่อที่ให้มันรู้ว่า เวลากดที่ปุ่มนี้ ให้เล่น กดที่ปุ่มนี้ ให้หยุด
แล้วเราก็ต้อง สร้างบอกในสคริปต์ด้วยว่า ต้องการให้สกินตัวนั้นโหลดไฟล์ที่มีชื่อว่าอะไร ขี้นมาแสดง อย่างงี้ใช่ไหมครับ
ผมมีปัญหากับการกำหนดชื่อ ของไฟล์วิดีโอที่ต้องการให้แสดงนี่แหล่ะครับ เพราะในตัวอย่างที่ผมเอามาดัดแปลงนั้น ถูกกำหนดให้เล่นไฟล์ ที่มีชื่อว่า " video " ซึ่งเขาใช้วิธีกำหนดชื่อไฟล์ไว้ใน ไฟล์ .xml ครับ
ผมเลยไม่สามารถ เปลี่ยนให้เป็นชื่อของไฟล์วิดีโอตัวที่ผมต้องการให้เล่นได้
3.2 คัดตัวเล่นวิดีโอไปไว้ที่เฟรมอื่นแยกต่างหาก
คือยังไง ช่วยอธิบายเพิ่มอีกนิดได้ไหมครับ
3.3 ขอถามเพิ่มอีกข้อครับ เวลาที่คลิกให้เปิดมาหน้า ที่มีไฟล์วิดีโออยู่ พอหน้านั้นเปิดขึ้นมาปุ๊บ ไฟล์วิดีโอที่อยู่ที่หน้านั้นมันจะเล่นเองอัตโนมัตเลยครับ
ถ้าผมต้องการให้เวลาเปิดหน้าที่มีไฟล์วิดีโออยู่ ขึ้นมาแล้ว ไฟล์วิดีโอที่อยู่ที่หน้านั้นมันหยุดไว้เฉยๆ ไม่เล่นเอง อย่างงี้ต้องเขียนสคริปต์ยังไงเหรอครับ
ขอบคุณ คุณก่อ กับ น้าแอ็ด เอ้ย คุณej_sing ด้วยนะครับ
3.1 เปลี่ยนชื่อไฟล์ได้ใน xml ครับ จากตรง
<url>video.flv</url>
เปลี่ยนเป็นชื่อไฟล์อื่นได้เลย :12:
3.2 อ้อ ก็คือว่า ให้ทำ Scene หรือเฟรมใหม่อะครับ ที่มีแต่ตัวเล่นวีดีโออย่างเดียว ใหญ่ๆ เต็มหน้าไปเลยครับ
ทีนี้เวลาสั่ง fullscreen มันก็จะได้มีแต่ตัวเล่นวีดีโอตัวเดียว เต็มจอเลยครับ
3.3 อาจจะต้องสั่งตัว stage_video ให้งด autoPlay อะครับ ไม่แน่ใจอะครับว่าคำสั่งนี้จะได้ไหม
stage_video.autoPlay = false;
แล้วสั่ง
stage_video.stop();
(ผมเดาว่า ไฟล์ที่ในตัวอย่างในลิงค์ ใช้ Component ของ Flash นะครับ)
สงสัย/ติดปัญหาตรงไหน ถามมาได้เลยครับ :12:
3.3 อันนี้ผมไปงมเจอแล้วครับ ต้องไปแก้ที่ช่อง parameters ของวิดีโอตัวนั้น เปลี่ยนค่า autoplay เป็น false ครับ
3.2 คือหมายความว่า ถ้าหน้าของผมมันเป็นหน้าที่มี ตัวหนังสือ มีส่วนประกอบอื่นอยู่ แล้วก็มี ไฟล์วิดีโอ เป็นส่วนหนึ่งในหน้านั้น
แล้วถ้าผมต้องการทำให้ แค่เฉพาะส่วนของ วิดีโอ อย่างเดียว ขยายขึ้นมาเต็มหน้า ( เหมือน you tube ที่มีทั้งตัวหนังสือ มีเว็บบอร์ดอยู่ที่หน้า แต่พอกด Fullscreen แล้ว มีแค่ส่วนวิดีโอเท่านั้นที่ขยายขึ้นมา ) อย่างงี้ทำไม่ได้เหรอครับ หรือว่ายังไงครับ
( หรือที่ you tube ทำได้ เพราะว่าเว็บของ you tube ไม่ใช่ flash อย่างงี้หรือเปล่าครับ )
3.1 ถ้าคุณ ก่อ ยังไม่รำคาญ ผมนะครับ คือว่าที่ผมต้องการทำให้ สารมารถเปลี่ยนชื่อของไฟล์ ที่ต้องการเล่นได้ เพราะว่า ผมจะได้สามารถใช้ สคริปต์ รูปแบบนี้ กับ สกินวิดีโอ ทุกตัวใน portfolio ของผมได้
ยกตัวอย่างเช่น ในแบบ สคริปต์ ของตัวอย่างที่คุณก่อเอามาให้ดู ถ้าสกินตัวที่ หนึ่ง ต้องการให้เล่นไฟลวิดีโอที่ชื่อว่า "vegas.flv" ที่สคริปต์มันจะเขียนว่า ns.play("vegas.flv");
พอผมสร้าง สกินของวิดีโอตัวที่ 2 ( สร้างเหมือนกันกับสกินตัวที่ 1 ทุกประการ แต่ไว้คนละหน้ากัน ) แล้วผมต้องการให้เล่นไฟล์วิดีโอที่ชื่อว่า "la.flv" ผมก็แค่เข้าไปเปลี่ยนที่สคริปต์ของสกินตัวนี้เป็น ns.play("la.flv"); แค่นี้ก็ได้แล้ว
แต่ในตัวอย่างที่ผมนำมาดัดแปลงนั้น ใช้วิธี กำหนดว่าให้เล่นไฟล์ ที่มีชื่ออยู่ที่ไฟล์ data.xml ( ซึ่งในไฟล์ .xml นี้กำหนดว่าให้เล่นไฟล์ที่ชื่อ "video.flv" ) อย่างงี้ ถ้าเกิดผมมี สกิน อีกตัว แล้วต้องการให้เล่นไฟล์ที่ชื่อว่า " vcd.flv"
ผมจะสามารถ สร้าง ไฟล์ .xml แล้ว กำหนดว่า <url>vcd.flv</url> แล้วก็เซฟ .xml ตัวนี้ป็น data1.xml แล้วก็ไปแก้ที่สคริปต์ของ สกิน ตัวนuhว่า สกินนี้ให้ดูข้อมูลจาก data1.xml อะไรอย่างงี้จะได้ไหมครับ ( งงไหมครับ )
3.1 ถูกต้องครับ ตามนั้นเลย
3.2 ที่ YouTube ทำได้ เพราะทั้งตัว Flash มันมีแต่ตัวเล่นวีดีโออะครับ เวลาเต็มจอ ก็เลยมีแต่ตัวเล่นวีดีโอ
ถ้าในเฟรมนั้นๆ มีส่วนประกอบอื่นด้วย จะไม่ได้ครับ
เพราะการ Fullscreen คือการทำให้ตัว Flash ทั้งตัว เต็มหน้าจอ ไม่ได้สั่งให้ส่วนใดส่วนหนึ่งขยายครับ
เว็บ YouTube มันเป็น Flash เฉพาะตัวเล่นวีดีโอน่ะคัรบ (ลองคลิกขวาที่ตัวเล่นวีดีโอดู)
3.3 :12: โอเชเลยครับ
:12: สู้ๆ นะ + ทั้งจารย์ก่อ แล้วก็คุณ orange juice
อ่านแล้วมึนดาม :32:
มึนเหมือนกันครับ :3005:
:3005: สุดยอดจริงๆเข้าใจกันแล้ว
คุณก่อครับ ผมมีเรื่องมารบกวนอีกแล้วครับ
1 คือว่าผมไปเจอกะทู้ในเวบ เวบนึง ที่เขาคุยกันเรื่องการทำวีดีโอเต็มจอ ( http://www.thaiflashdev.com/home/index.php?topic=2935.0 ) คนที่โพสถามเขามีปัญหาแบบเดียวกับผมคือ ต้องการทำให้วีดีโอเต็มจอ แต่พอทำแล้วมันกลายเป็นว่า flash ทั้งก้อนเต็มจอ มีคนที่มาตอบ เขาเขียนตัวอย่างสคริปต์ให้ดูเป็น as3 ว่า
btnBig.addEventListener(MouseEvent.CLICK, goFullScreen);
function goFullScreen(evt:Object):void {
var scalingRect:Rectangle = new Rectangle(myVid.x,myVid.y, myVid.width, myVid.height);
//เอาแต่วิดิโอมาทำเป็น fullscreen
//var scalingRect:Rectangle = new Rectangle(myVid.x,myVid.y, stage.width, stage.height);
//เอาทั้งวิดิโอ และ ทุกอย่างที่อยู่นอกวิดิโอ ใน stage flash ทั้งหมด มาทำเป็น fullscreen
stage.fullScreenSourceRect = scalingRect;
if (stage.displayState == StageDisplayState.NORMAL) {
stage.displayState = StageDisplayState.FULL_SCREEN;
} else {
stage.displayState = StageDisplayState.NORMAL;
}
}
มีอีกคนมาอธิบายเพิ่ม
" หลังจากที่ flash ก้อนใหญ่นั้นมันเต็มจอแล้ว ก็สั่งให้ vdo ที่อยู่ในนั้น ใหญ่เท่าจอที่เต็มอยู่ พร้อมทั้งย้ายมันไปวางชิดขอบ ซ้ายบน ไงล่ะครับ "
ผมไปค้นเพิ่มในเว็บฝรั่ง เจอ สคริปต์ AS2
1. import flash.geom.Rectangle;
2.
3. function goFullScreen(currentVideo)
4. {
5. trace("Scaling");
6. var scalingRect:Rectangle = new Rectangle(currentVideo._x, currentVideo._y, currentVideo._width, currentVideo._height);
7. Stage["fullScreenSourceRect"] = scalingRect;
8.
9. if(Stage.displayState == "normal")
10. {
11. Stage.displayState = "fullscreen";
12. }
13. else
14. {
15. Stage.displayState = "normal";
16. }
17. }
กับ
introScreen.fullScreenBut.onRelease = function(){
var scalingRect:Rectangle = new Rectangle(0, 0, 1000, 700);
Stage["fullScreenSourceRect"] = scalingRect;
Stage.displayState = "fullScreen"
play()}
}
แล้วก็เจออีกหลายอันเลยนะครับทั้ง as2 และ as3 ซึ่งมันก็จะคล้าย ๆอย่างงี้แหละ
แต่ว่า พอผมมาลองทำแล้วมันทำไม่ได้น่ะครับ เลยมาถามคุณก่อว่า คุณก่อดูแล้วพอจะรู้ไหมครับ ว่าต้องแทนค่าอะไร ยังไง
ปกติผมใช้ as2 เท่าที่ผมเคยลองนะครับ ตรง x , y ผมเปลี่ยนเป็น 0 , 0 ซึ่งก็คือ การทำให้วีดีโอนั้นไปอยู่ที่ขอบ ซ้าย บนใช่ไหมครับ แล้วตรง _width , _height เปลี่ยนเป็นความกว้างยาวของ สเตจ ตรง currentVideo เปลี่ยนเป็นชื่อ instance ของวีดีโอ บางทีผมก็ลองเปลี่ยนแค่บางค่า แล้วบางค่าก็ไม่เปลี่ยน และอีกหลายแบบ มันก็ไม่ได้ครับ
2 คือว่าผมทำงานของผมเอาไว้ที่ scene โดยที่ scene ของผมจะมี layer หลาย layer แล้วก็มี เฟรม หลาย เฟรม แล้วถ้าเกิดว่าผมต้องการจะเปลี่ยนให้ scene นั้นเป็นเพียงแค่ movie clip อันนึง อย่างงี้จะทำได้ไหมครับ ( เหมือนกับเวลาที่เราสร้าง movie clip ขึ้นมาก่อน แล้วเราก็สามารถไปสร้าง layer สร้าง เฟรม ใน movie clip นั้นได้ใช่ไหมครับ แต่อันนี้ผมสร้าง scene ขึ้นมาก่อนนะครับ )
ขอบคุณนะครับ
1. เค้าก็ทำวิธีคล้ายๆ ที่ผมบอกน่ะแหละครับ
คือไงๆ แฟลชทั้งก้อนมันก็ต้องเต็มจออยู่แล้ว เราไปขัดไม่ได้หรอกครับ
ทางเดียวคือต้องเลี่ยง
เลี่ยงยังไง?
- จากวิธีนั้นคือ กำหนดพื้นที่บางส่วนที่ให้ขยายเต็มจอ
- วิธีผมคือ ทำตัวเล่นไว้อีกเฟรม
แล้ววิธีทำหนดบางส่วน ทำยังไง?
ตามโค้ด เค้ากำหนดพื้นที่โดยใช้คลาส Rectangle ครับ กำหนดพื้นที่
โดยคลาส Rectangle เนี่ยมันใช้แบบนี้ครับ
var scalingRect:Rectangle = new Rectangle(ตำแหน่ง x, ตำแหน่ง y, กว้าง, ยาว);
ถ้าตัวเล่นวีดีโอมี Instance Name ว่า myVDOPlayer ก็ต้องใส่แบบนี้
//ActionScript 3.0
var scalingRect:Rectangle = new Rectangle(myVDOPlayer.x, myVDOPlayer.y, myVDOPlayer.width, myVDOPlayer.height);
//ActionScript 2.0
var scalingRect:Rectangle = new Rectangle(myVDOPlayer._x, myVDOPlayer._y, myVDOPlayer._width, myVDOPlayer._height);
ส่วนที่เหลือไม่ต้องแก้ครับ ปล่อยทิ้งไว้แบบนั้น
ส่วนตัววิธีนี้เหมาะกับเวลาที่ขี้เกียจย้ายของไปไว้เฟรมอื่น และสะดวกกว่าวิธีผมครับ
แต่วิธีผมมันคือวิธีชาวบ้าน :30: ไม่ต้องอาศัยโค้ดมาก แค่เอาไปไว้อีกเฟรมนึง แล้ว gotoAndStop แค่นั้นเอง
2. เปลี่ยน Scene เป็น MovieClip ต้องอาศัยกระบวนการ "ถึก" ครับ
นั่นคือ Copy Frame ไปใส่ MovieClip อย่างเดียวครับ ไม่มีวิธีที่ง่ายกว่านี้ หรือวิธีลัดครับ
(เช่น คลิกขวาแล้วเลือก Convert to MovieClip ไม่มีครับ)
คุณก่อครับผมมีเรื่องมารบกวนอีกแล้วครับ
คือใน portfolio ของผม มันมี สกรอบาร์ 3-4 อัน ที่อยู่คนละ scene กัน ( สกรอบาร์ที่ผมใช้เป็นแบบที่ สร้าง เลเยอร์ สกรอบาร์ เลเยอร์ mask แล้วก็ เลเยอร์ content ซึ่งที่ เลเยอร์ content นี้จะมี movieclip 1 ตัว แล้วภายใน movieclip ตัวนี้ จะเป็นที่เอาไว้สำหรับสร้างเนื้อหาทั้งหมด สกรอบาร์ตัวนี้ผมจำมาจากตัวอย่างของคนอื่นเขา )
ผมมีปัญหาว่า
1 ภายใน movieclip ที่เป็นที่รวมเนื้อหาของผมนี้ มันมีปุ่ม ที่ผมต้องการให้กดแล้ว ข้ามไปยัง scene อื่น แบบนี้ต้องเขียนสคริปต์ยังไงเหรอครับ ผมรู้จักสคริปต์ _parent ที่กดให้ จากใน movieclip มาที่ scene ( scene เดียวกันกับ movieclip ) , รู้จักสคริปต์ที่กดให้ข้าม scene แบบจาก scene นึง ไป ยังอีก scene นึง แต่ให้จาก ใน movieclip ของ scene ตัวนึง ไปที่ scene ของอีกตัวนึง อย่างงี้ต้องเขียนสคริปต์ว่ายังไงเหรอครับ
2 ภายใน movieclip ที่เป็นเนื้อหา ( ที่มี สกอรบาร์บังคับอยู่อีกที ) ของผม ผมมีปุ่มที่อยู่ตรงช่วงกลาง ๆของหน้า สมมุติว่าหน้าเนื้อหาของผมสูง( h ) 4000 pixels ผมมีปุ่มอยู่ที่ตำแหน่ง ( y ) 2000 ซึ่งปุ่มนี้ผมต้องการให้เวลากดแล้ว ข้ามไปยังเฟรมที่ 10 ( ภายใน movieclip เดียวกัน ) แต่ว่า ผมต้องการให้เวลาที่ข้ามไปยังเฟรมที่ 10 แล้ว มันไปอยู่ตรงที่ช่วงบนๆของหน้า ( ประมาณ y = 350 ) อย่างงี้จะสามารถกำหนดได้ไหมครับ ( ที่ผมทำได้คือ ปุ่มอยู่ที่ตรงไหน( ค่า y ) แล้วกดให้ข้ามไปยังเฟรมอื่นมันก็จะไปแสดงเนื้อหาตรงช่วงที่ค่า y ของปุ่มตัวนั้นอยู่ )
3 เวลาที่ผมใส่สกรอบาร์เข้าไป 2 อัน ( สกอรบาร์แต่ละอันอยู่คนละ scene กัน ) พอ ctrl+ent ออกมา แล้วใช้ลูกกลิ้งของเม้า เลื่อนสอร์บาร์ มันจะเร็วมากเลยครับ สมมุติจากเดิม( มีสกอรบาร์แค่ 1 อัน ) เลื่อนลูกกลิ้งที่เม้าประมาณ 12 ทีถึงจะสุดหน้า แต่พอใส่สกรอบาร์เพิ่มไปอีกเป็น 2 อัน เลื่อนแค่ 4 ทีก็สุดแล้ว ( แต่ถ้าใช้เม้ากดที่แถบ slider แล้วลากเอาจะไม่เป็นไร หรือกดที่ลูกศร ขี้นบน ลงล่าง ก็ไม่เป็นไร ) อย่างงี้พอจะรู้วิธีแก้ไหมครับ
4 ผมมีปุ่มอยู่ปุ่มนึง ที่เขียนสคริปต์ไว้ให้เวลากดแล้วข้ามไปยังที่หน้าๆนึง ซึ่งที่หน้าๆนี้จะมีข้อความ กับ รูปภาพอยู่ 1 รูป แล้วผมมีลูกเล่นว่า จะให้ภาพที่มีอยู่ 1 รูปนี้ มี 2 ภาพ สลับกัน แล้วแต่บางทีคนกด ก็กดมาเจอรูปที่ 1 แต่กดอีกทีก็อาจเจอรูปที่ 2 อย่างงี้ต้องทำยังไงเหรอครับ
5 ผมสร้างปุ่มที่กำหนดให้เวลาเอาเม้าไปวางบนปุ่มแล้วปุ่มมันจะเปลี่ยนสี แต่ถ้าผมต้องการให้เวลาที่เลื่อนเม้าออกแล้วปุ่มก็ยังเปลี่ยนสีค้างไว้อยู่อีกประมาณ 3-4 วินาที อย่างงี้ต้องทำยังไงเหรอครับ
ของคุณครับ
1. ดูที่นี่ครับ http://www.f0nt.com/forum/index.php/topic,15565.0.html (http://www.f0nt.com/forum/index.php/topic,15565.0.html)
2. ได้ครับ ก็สั่ง xx._y = 350 แต่ผมก็ยังงงอยู่ดี สิ่งที่ผมต้องการคือ
- รูปประกอบของงานที่ทำ
- โค้ดบางส่วนที่คิดว่ามีปัญหา
3. ผมไม่เห็นโค้ดครับ เลยยังแนะนำไม่ได้
4. ใช้คำสั่ง random ร่วมกับ gotoAndStop ครับ
5. มีให้เลือกครับ คือเขียนโค้ด กับ Tween เอา
- ถ้าเขียนโค้ด ใช้ setTimeOut
- ถ้า Tween เอาก็ไปทำการ Tween MovieClip ในสถานะตอนเอาเมาส์ออก ให้มันแสดงรูปเดิมยาว 3-4 วินาที
ขอบคุณ คุณก่อ นะครับที่คอยตอบให้ตลอดเลย รู้สึกดีนะครับที่ได้รู้จักกับ คุณก่อ เป็นเพื่อน ขอบคุณครับ
2 ผมเอารูปลงในกระทู้ไม่เป็นครับ
คือผมทำ เนื้อหางานของผมไว้ใน movieclip ตัวหนึ่ง ( ที่มี สกอรบาร์บังคับอยู่อีกที ) ที่ใน movieclip ตัวนี้ สมมุติว่ามี layer แบ็คกราวน์ , layer ข้อความ a, แล้วก็ layer ข้อความ b ที่เฟรมที่ 1 ใน movieclip ตัวนี้ ผมกำหนดให้ layer แบ็คกราวน์ กับ layer ข้อความ a แสดงผล ( ที่เฟรมที่ 1 นี้ จะมีปุ่มเอาไว้สำหรับกดไปเฟรมที่ 5 ) แล้วที่เฟรมที่ 5 ผมกำหนดให้ layer แบ็คกราวน์ ตัวเดิมยังแสดงผลอยู่ แต่ layer ข้อความ a จะไม่มีที่เฟรมนี้ ( สุดอยู่แค่เฟรมที่ 1 แล้ว ) แล้วให้ layer ข้อความ b แสดงผลแทน ประมาณนี้นะครับ ไม่รู้ว่าคุณก่อพอจะ เห็นภาพรึเปล่า ซึ่งมันทำให้ผม สามารถใช้ layer แบ็คกราวน์ ตัวเดิม ใช้ สกอรบาร์อันเดิม ( ที่บังคับ movieclip ตัวนี้อยู่ ) ได้ แล้วถ้าผมมี layer ข้อความ c layer ข้อความ d ผมก็ทำยังงี้ต่อๆไปใน movieclip ตัวนี้ อย่างงี้เรื่อยๆ นะครับ
ปัญหาของผมคือ เวลาที่กดปุ่มให้ข้ามไปยังที่อีกเฟรมนึง แล้วผมต้องการกำหนดค่า y อย่างที่บอก ผมใช้สคริปต์ on (release) { gotoAndPlay(5); } ธรรมดานี่แหละครับ
แล้วไอการใส่ xx._y = 350 เพิ่มเข้าไปในสคริปต์นี้ มันต้องใส่ไว้ตรงไหนเหรอครับ คุณก่อ ช่วยลองใส่ให้ดูหน่อยได้ไหมครับ วันนี้ผมลองใส่ ลองสลับตำแหน่งไปมาแล้วมันก็ไม่ได้
3 สคริปต์ตัวนี้ผมจำมาจากตัวอย่างของคนอื่นเขาอีกทีครับ ขออนุญาตเจ้าของสคริปต์ไว้ที่นี้ด้วยนะครับ
//โค้ดส่วนแรก ใช้สำหรับเคลื่อนที่ slider พร้อมๆไปกับตัวเนื้อหา ถ้าไม่มีส่วนนี้ส่วนอื่นก็ไม่เวิร์ก
fscommand("allowscale", "false");
var startPt:Number = content_mc._y;
var displayLength:Number = content_mc._height - mask_mc._height;
function moveContent(percent:Number) {
percent = Math.round(percent);
if (percent < 0) {
percent = 0;
} else if (percent > 100) {
percent = 100;
}
scroll_mc.gotoAndStop(percent + 1);
content_mc._y = startPt - percent * displayLength / 100;
}
function moveContentOneStep(inc:Number) {
moveContent(scroll_mc._currentframe + inc - 1);
}
//โค้ดส่วนนี้ใช้เลื่อนสไลด์เดอร์เมื่อคลิ้กลาก หากไม่ต้องการคลิ้กลากก็ไม่ต้องใส่
scroll_mc.onPress = function() {
moveContent(100 * this.area_mc._ymouse / this.area_mc._height);
this.onMouseMove = function(Void):Void {
moveContent(100 * this.area_mc._ymouse / this.area_mc._height);
};
};
scroll_mc.onRelease = function() {
delete this.onMouseMove;
};
scroll_mc.onReleaseOutside = scroll_mc.onRelease;
//โค้ดส่วนนี้ใช้เลื่อนสไลด์เดอร์เมื่อเลื่อนลูกกลิ้ง หากไม่ต้องการก็ไม่ต้องใส่
//เครื่องMac ยังไม่supportการใช้ลูกกลิ้งในแฟลช ไม่ต้องงงว่าทำไมใช้ไม่ได้ และไม่ต้องเดือดร้อนหาโค้ดให้เมื่อยตุ้ม
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta_num:Number, scrollTarget:String) {
moveContent(scroll_mc._currentframe - delta_num - 1);
};
Mouse.addListener(mouseListener);
//โค้ดส่วนนี้ใช้เลื่อนสไลด์เดอร์เมื่อกดปุ่ม หากไม่ต้องการก็ไม่ต้องใ่ส่
up_mc.step = -5;
down_mc.step = 5;
up_mc.onRelease = function() {
moveContentOneStep(this.step);
delete this.onEnterFrame;
};
down_mc.onRelease = up_mc.onRelease;
//โค้ดส่วนนี้ใช้เลื่อนสไลด์เดอร์เมื่อกดปุ่มค้างเอาไว้ หากไม่ต้องการก็ไม่ต้องใส่
up_mc.onPress = function() {
this.clickDelay = 10;
this.onEnterFrame = function() {
if (this.clickDelay > 0) {
this.clickDelay--;
} else {
this.onEnterFrame = function() {
moveContentOneStep(this.step);
};
}
};
};
up_mc.onReleaseOutside = function() {
delete this.onEnterFrame;
};
down_mc.onPress = up_mc.onPress;
down_mc.onReleaseOutside = up_mc.onReleaseOutside;
มันจะมีปัญหาเฉพาะส่วนลูกกลิ้งของเม้า ที่จะเร็วขึ้นมาก ถ้าหากว่าใส่ สกอรบาร์ 2 ตัวในงานเดียวกัน ( สกอรบาร์แต่ละตัว อยู่คนละ scene กัน, แล้วผมก็สร้างพวกชิ้นส่วนต่างๆ ของสิ่งที่นำมาประกอบเป็นสกอรบาร์ ทั้ง 2 ตัวนี้ ขึ้นมาคนละทีกัน คือผมไม่ได้ใช้ตัว slider ตัว trace หรือว่าตัว scroll Area ตัวเดียวกัน ใน 2 สกอรบาร์ นี้ ผมสร้างมันขึ้นมาต่างหาก แล้วก็ตั้งชื่อให้ไม่เหมือนกัน พอผมสร้างสกอร์บาร์อีกตัวผมก็ไปเปลี่ยนที่สคริปต์เป็นชื่อของ มูฟวี่คลิปตัวใหม่ ) พอ ctrl + ent ออกมาแล้วทีแรกก็ยังไม่เป็นไรหรอกครับ แต่พอกดไปดูที่อีก scene นึง ที่มี สกอรบาร์ แล้วพอกดกลับมามันก็จะเร็วขึ้น ( ผมสังเกตนะครับ ยิ่งกดสลับจาก scene นึงไปยังอีก scene นึง มากครั้งเท่าไหร่ ความเร็วมันก็จะยิ่งมากขึ้นตามนั้น )
4 ที่ผมเข้าใจนะครับ คือผมต้องสร้างหน้าที่มีหน้าตาแบบเดียวกันนี้ขึ้นมา 2 หน้า( 2 เฟรม ) แล้วที่หน้านึง ให้ใส่รูปนึง ส่วนอีกหน้านึงก็ให้ใส่อีกรูปนึง แล้วก็ไปสร้างสคริปต์ที่ปุ่มกด ที่ต้องการให้มาที่ 2 หน้านี้ สคริปต์ที่ผมใช้ก็คือ on (release) { gotoAndPlay( ); } ธรรมดานี่แหล่ะครับ แล้วจะต้องใส่สคริปต์ว่า random เพิ่มเข้าไปตรงไหนเหรอครับ สมมุติว่าหน้าที่ผมสร้างไว้ 2 หน้านี้อยู่ที่เฟรม ที่ 7 กับที่ 8
5 " ไปทำการ Tween MovieClip ในสถานะตอนเอาเมาส์ออก " สถานะตอนเอาเมาส์ออก คือตรงไหนเหรอครับ ที่ผมรู้ up สถานะของปุ่มแบบปกติ over สถานะของปุ่มเมื่อเอาเม้าไปวาง down สถานะของปุ่มเมื่อเอาเม้ากดลง hit พื้นที่รับค่า ผมเคยลองไปทำตรง over หลายทีแล้วก็ไม่เห็นได้ ( หรือผมอาจทำไม่ถูกวิธี )
:05: พิมพ์ได้งง มากเลยครับ สงสารอาจารย์ก่อ
แล้วยิ่งตีสองแล้วด้วย
เอ่อ.. วิธีเอารูปลงบอร์ดนะครับ
ตอนโพสต์ให้ก้มลงดูด้านล่างกล่องที่พิมพ์ตอบอะครับ มันจะมีกล่องเทาๆ สำหรับอัพโหลดภาพ
(http://img3.f0nt.com/05/5f31aec4c43afa9002c853e2b8bb071f.jpg)
กด Browse ไปเลือกรูป เลือกแล้วกดปุ่ม อัพโหลด ครับ
เสร็จแล้วกรอบจะเปลี่ยนเป็นกล่องข้อความที่มีโค้ดรูปด้านใน ก็เอาเมาส์ไปชี้ มันจะทำ Selection ให้
กด Ctrl+C เพื่อก๊อปปี้
(http://img3.f0nt.com/05/856a761c42d0de4249e106f933a356bf.jpg)
จากนั้นก็ให้มา Ctrl + V ในกล่องพิมพ์ตอบนี้อะครับ
(http://img3.f0nt.com/05/309e875ed75290bad7a8035a2206aa1d.jpg)
จะอัพรูปอีกก็กดที่ "อัปภาพอีกครั้ง"
ไม่งั้นผมว่า ส่งไฟล์ fla มาเลยดีกว่าครับ ผมเริ่มงงแล้วอะ
ข้อ 5 ผมพลาดเองครับ ลืมไป แหะๆ
ยังไงคงต้องทำเป็น MovieClip แล้วใช้ script คุมเอาอีกทีอะครับ
ขอเบิ้ลนะฮะ จะได้แยกๆ กัน
ข้อ 3 แก้ส่วนของเมาส์สกรอลได้ที่
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta_num:Number, scrollTarget:String) {
moveContent(scroll_mc._currentframe - delta_num - 1);
};ครับ ลองปรับค่าจาก scroll_mc._currentframe - delta_num - 1
เป็น delta ดู
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta_num:Number, scrollTarget:String) {
moveContent(delta_num);
};ช้าไปก็ลอง + - * / ตัวเลขอื่นดูครับ
ข้อ 4ให้ไปใส่ในเฟรมที่อยู่เฟรมเดียวกับ MovieClip ที่มีภาพ 2 ภาพน่ะครับ
ก็สั่ง
mc.gotoAndStop( random(2)+1 );จะเป็นการสั่ง MovieClip ชื่อ mc ไปเล่นในเฟรมที่ 1 หรือ 2 ตามที่สุ่มได้
สุดท้าย รบกวนปรับการเว้นวรรค+เว้นบรรทัดหน่อยอะครับ ผมอ่านแล้วมึนไปนิด :05:
มันโย้เย้ อ่านยากอะครับ (เคาะ Enter เว้นบรรทัดลงมาบ้างก็ดีครับ)
ตัวอย่างต้นแบบอ้างอิง5 " ไปทำการ Tween MovieClip ในสถานะตอนเอาเมาส์ออก " สถานะตอนเอาเมาส์ออก คือตรงไหนเหรอครับ ที่ผมรู้ up สถานะของปุ่มแบบปกติ over สถานะของปุ่มเมื่อเอาเม้าไปวาง down สถานะของปุ่มเมื่อเอาเม้ากดลง hit พื้นที่รับค่า ผมเคยลองไปทำตรง over หลายทีแล้วก็ไม่เห็นได้ ( หรือผมอาจทำไม่ถูกวิธี )
จัดใหม่อ้างอิง5. " ไปทำการ Tween MovieClip ในสถานะตอนเอาเมาส์ออก "
สถานะตอนเอาเมาส์ออก คือตรงไหนเหรอครับ ที่ผมรู้
- up สถานะของปุ่มแบบปกติ
- over สถานะของปุ่มเมื่อเอาเม้าไปวาง
- down สถานะของปุ่มเมื่อเอาเม้ากดลง
- hit พื้นที่รับค่า
ผมเคยลองไปทำตรง over หลายทีแล้วก็ไม่เห็นได้ ( หรือผมอาจทำไม่ถูกวิธี )
:05: อ่านง่ายขึ้นจริงๆ นะ
ป.ล. ใช้ตัวหนา ตัวเอียง ขีดเส้น และสีอักษรช่วยเน้นด้วย จะดึงดูดให้คนอื่นมาช่วยตอบเยอะขึ้นด้วยฮะ (เผื่อผมไม่อยู่)
ขอลบกระทู้นี้ทิ้งแล้วไปพิมพ์ใหม่
สงสารก่อ อ่านยากน่ะครับ
ไม่รุ้ว่าพิมพ์จากโปรแกรมอื่นแล้วก๊อปมาใส่หรือเปล่า
ลองพิมพ์เว้นบรรทัดบ่อยๆ ดูครับ บรรทัดนึงไม่ต้องยาวมาก
บางทีมันเหมือนกับ ผมพิม์โดยเว้นช่องไฟ เว้นบรรทัดอย่างนึง แล้วเวลาสั่งให้แสดงผล มันออกมาเป็นอีกแบบนึง
ข้อ 2 ง่ายๆ เลยนะครับ เวลาที่กดปุ่มสั่งให้ข้ามไปที่อีกเฟรมนึง ( อีกหน้านึง ) แล้วต้องการให้มันไปแสดงอยู่ตรงช่วงค่า y
ที่ต้องการ ต้องเขียนสคริปต์ว่ายังไงเหรอครับ
ถ้าปกติผมใช้สคริปต์ on (release) { gotoAndPlay(5); } อย่างงี้ ต้องไปใส่อะไรเพิ่มยังไงเหรอครับ
ที่ คุณก่อ บอกว่าใส่ xx._y = 350 เพิ่มเข้าไป นี่คือใส่ตรงส่วนไหนของในสคริปต์
คุณก่อ ช่วยลองใส่ให้ดูหน่อยได้ไหมครับ
ข้อ 3 ผมลองแล้วไม่ได้ครับ ลองเปลี่ยนตามที่คุณก่อบอกแล้วมันจะใช้สกอรบาร์ไม่ได้เลยครับ พอเปลี่ยนเป็น
(delta_num); แล้ว ctrl + ent ออกมา เวลาเลื่อนลูกกลิ้งที่เม้าขึ้น มันจะกลายเป็นเลื่อนลง ( แล้วลงมาแค่ครั้งแรกครั้งเดียว )
พอเลื่อนลูกกลิ้งลง มันจะกลายเป็นเลื่อนขึ้น
ข้อ 4 ไม่เข้าใจครับ สมมุติปุ่มของผมอยู่ที่เฟรมที่ 1 แล้วหน้าที่ผมต้องการให้แสดงนี้อยู่ที่เฟรมที่ 5 กับ เฟรมที่ 6
( ที่ผมเข้าใจคือ ผมต้องสร้างหน้าที่เหมือนกันขึ้นมา 2 หน้า แต่เปลี่ยนรูป ให้รูปที่อยู่เฟรมที่ 5 เป็นรูปหนึ่ง
ส่วนรูปที่อยู่เฟรมที่ 6 เป็นอีกรูปหนึ่งอย่างงี้ใช่ไหมครับ )
แล้วจะไปใส่ mc.gotoAndStop( random(2)+1 ); ตรงไหน
แล้วผมจะต้องสร้าง MovieClip ชื่อ mc ขึ้นมาด้วยเหรอครับ
ข้อ 5 สคริปต์คลุมนี่ เขียนว่ายังไงเหรอครับ แล้วต้องไปทำตรง over ใช่ไหมครับ
:08: อ่านยากจังเลย
อ้างคำพูดจาก: orange juice เมื่อ 05 มิ.ย. 2009, 11:14 น.
บางทีมันเหมือนกับผมพิม์โดยเว้นช่องไฟ เว้นบรรทัดอย่างนึงแล้วเวลาสั่งให้แสดงผลมันออกมาเป็นอีกแบบนึง
ข้อ 2 ง่ายๆ เลยนะครับ
เวลาที่กดปุ่มสั่งให้ข้ามไปที่อีกเฟรมนึง ( อีกหน้านึง )
แล้วต้องการให้มันไปแสดงอยู่ตรงช่วงค่า y ที่ต้องการ
ต้องเขียนสคริปต์ว่ายังไงเหรอครับ
ถ้าปกติผมใช้สคริปต์ on (release) { gotoAndPlay(5); } อย่างงี้ต้องไปใส่อะไรเพิ่มยังไงเหรอครับ
ที่ คุณก่อ บอกว่าใส่ xx._y = 350 เพิ่มเข้าไปนี่คือใส่ตรงส่วนไหนของในสคริปต์
คุณก่อ ช่วยลองใส่ให้ดูหน่อยได้ไหมครับ
ลองคล้ายๆ แบบนี้ดูสิครับ :47:
:05: ขอโทษนะครับ ผมอ่านไม่รู้เรื่องจริงๆ ลายตาไปหมดเลย
2. ผมจะใส่ให้ดูยังไงอะครับ ไฟล์ผมก็ไม่เห็นอะ
คุณก็ไปใส่ xx._y = ค่า ในเฟรมที่มี scrollbar ไงครับ โดยที่ xx คือ Instance Name ของตัวเนื้อหา
3. ลองใส่เครื่องหมาย -ด้านหน้า delta_num สิครับ ลองเปลี่ยนตัวเลขไปเรื่อยๆ คือ delta_num เนี่ย มันคือค่าที่เกิดจากการหมุนลูกกลิ้งบนเมาส์น่ะครับ ยิ่งเลขมาก ยิ่งเลื่อนเร็ว ถ้าค่ามันกลับด้านกัน ก็ใส่ - ด้านหน้าซะ
4. งั้นก็เปลี่ยนเป็นแบบนี้ gotoAndStop( random(2)+5 );
ผมว่าคุณคงต้องศึกษาพื้นฐานมันก่อนอะครับ เพราะเท่าที่ผมดูแล้วเนี่ย
บางอย่างแค่แก้ตัวเลขมันก็ทำงานถูกต้องแล้วน่ะครับ
แล้วพยายามลดการใช้ Spacebar แบ่งวรรคตอนครับ ใช้ Enter ได้ครับ กด Enter แล้วมันไม่ได้จะโพสต์ข้อความเลย
ผมแนบไฟล์ไม่เป็นอีกแหละครับ ( ไม่ค่อยจะรู้อะไรเลยใช่ไหมครับ )
ผมขออธิบายด้วยวิธีของผมแล้วกันนะครับ
(http://img3.f0nt.com/06/1c8d97b4288a02ec39fa9dfc177fa377.jpg)
ปุ่มสีเขียวๆ ที่อยู่ใน " มูฟวี่คลิปเนื้อหา " ที่เฟรมที่ 1 ( มูฟวี่คลิปตัวนี้มี สกอร์บาร์ ที่ ซีน บังคับอยู่อีกที )
ปุ่มๆนี้ผมสร้างขึ้นมา เพื่อให้ทำหน้าที่ เปิดไปยังเฟรมที่ 10
ซึ่งเวลาที่ผมกดปุ่มนี้ให้ไปยัง เฟรมที่ 10 นั้น มันจะไปเปิดฟรมที่ 10 ขึ้นมา ตรงช่วงตำแหน่ง
ค่า y เดียวกัน กับที่ตำแหน่งค่า y ของปุ่มนี้อยู่ ( ก็คือมันจะเปิด หน้าที่อยู่เฟรมที่ 10 แต่มันจะเปิดตรงช่วง
ที่ล่างลงมา ไม่ใช่ช่วงบนสุดของหน้า , แล้วถ้าเกิดปุ่มคำสั่งแบบนี้ อยู่ที่ช่วงตำแหน่งล่าง ๆของหน้าเลย
พอสั่งให้มันไปเปิดที่หน้านึง มันก็จะเปิดหน้าๆนั้นขึ้นมา ที่ช่วงตำแหน่งล่างๆ ของหน้าเลยเหมือนกัน )
ที่ผมต้องการคือ ผมต้องการให้เวลาสั่งให้ไปเปิดที่ เฟรมที่ 10 แล้วมันไปเปิด เฟรมที่ 10
ตรงตำแหน่งค่า y ที่ต้องการ เช่นให้ไปเปิดหน้านี้ แต่ให้ไปเปิดที่ช่วงบนของหน้า ไม่ใช่เปิดมาที่ช่วงล่างๆ ของหน้า
แบบนี้น่ะครับ
คุณก่ออ่านแล้ว สงสัยงงหนักกว่าเดิมอีกแน่ๆ เลย ไอนี่มันทำอะไรของมันเนี่ย
ถ้าเกิดเป็นอย่างงั้นผมก็ขออภัยมานะที่นี้ด้วยครับ
อูย ไม่ printscreen เอาละครับเล่นใช้กล้องถ่ายเอาเหรอครับ :44:
โอ้ว เห็นรูปแล้วเห็นภาพชัดเจนขึ้นครับ
ผมยังยืนยันคำสั่งนี้ครับ ใส่ไว้ที่เฟรมที่มีโค้ด Scrollbar อยู่
content_mc._y = เท่าไหร่ก็ว่าไป;
เอาไว้ล่างบรรทัด
var startPt:Number = content_mc._y;
var displayLength:Number = content_mc._height - mask_mc._height;
เป็นแบบนี้
var startPt:Number = content_mc._y;
var displayLength:Number = content_mc._height - mask_mc._height;
content_mc._y = contentPosition;
โดยที่ตัวแปร contentPosition จะกำหนดค่าจากปุ่มเขียวครับ
โค้ดคงประมาณนี้
on(press){
.....
contentPosition = -300;
.....
}
จากตรงนี้ เนื้อหามันจะเลื่อนไปตามที่กำหนด แต่ตัวแถบ Scrollbar มันจะไม่เลื่อนตามครับ
ดังนั้นเราต้องเอาตำแหน่งของ content_mc (หรือตัวเนื้อหา B นั่นแหละครับ) มาคำนวณกลับ
เพื่อหาเฟรมของ Scrollbar ที่ควรจะแสดงผลอีกที
ตรงนี้ผมคิดว่าคงต่อได้นะครับ เพราะใช้ตัวแปร+ค่าที่มีอยู่จากโค้ดเดิม มาดัดแปลงคำนวณใหม่
(เขียนเพิ่มครับ ไม่แก้ของเดิม)
ส่วนแนบไฟล์ ผมแนะนำให้ไปหาเว็บฝากไฟล์อะครับ พอฝากไฟล์เสร็จ ทางเว็บจะให้ลิงค์สำหรับดาวน์โหลดมา
ก็เอาลิงค์นั้นมาแปะครับ แล้วผมก็จะเข้าลิงค์นั้นไปดาวน์โหลดอีกทีครับ
แนะนำ www.drop.io (http://www.drop.io) ครับ
เข้ามามึน
ไม่ได้มึนสคริป แต่มึนเว้นวรรค :32:
ทำไม่ได้เหมือนเดิมครับคุณก่อ ใส่สคริปต์ทั้ง 2 ตัวเข้าไปก็ไม่เกิดอะไรขึ้น
แต่ไม่เป็นไรครับ ผมจะประยุกต์ใช้วิธีอื่นเอา
ผมขอถามต่ออีกหน่อยนะครับ
อาการฟ็อนต์เบลอ แก้ยังไงได้บ้างเหรอครับ เท่าที่ผมทราบคือ ต้องไปปรับค่าที่ช่อง
Font rendering method ให้เหมาะกับรูปแบบฟ็อนต์ที่ใช้ใช่ไหมครับ ซึ่งผมลองไปปรับ
ดูทุกค่าในช่องนี้แล้วมันก็ยังเบลออยู่ ( ตอนนี้ผมใช้ Anti-alias for readability
ฟ็อนต์ของผมนั้นใช้ทำหน้าที่พิมพ์ของมูลธรรมดา ความใหญ่ประมาณ 19 ผมสังเกตุถ้าขนาดฟ็อนต์
ยิ่งเล็กมันก็ยิ่งเบลอ) นอกจากแก้ที่ช่องนี้แล้วยังมีวิธีอื่นอีกไหมครับ
แน่ใจนะครับว่าแก้ถูกต้องตามที่ผมบอกแล้ว?
ผมก็ไม่รู้ด้วยว่าตกลงมันทำงานอะไรยังไงเพราะผมไม่เห็นไฟล์ด้วยครับ
ส่วนเรื่องฟอนต์ ไม่มีครับ มีที่นั่นที่เดียว
เหนื่อยแทน อาจารย์ก่อจริงๆ อะครับ
มาให้กำลังใจเน้อ
แค่อ่าน ที่พิมพ์ก็งงพอตัวเลยนะครับ ต้องมางง script อีก
ฆ้าฉ้านนนให้ตายซะเลยดีกว่า.... :05:
คือก่ออธิบายค่อนข้างละเอียดแล้วนะครับผมว่า ได้ลองทำตามดูตามนั้นรึเปล่าครับ
เอาไว้ผมจะลองใหม่ แต่ยังไงก็ขอบคุณ คุณก่อนะครับ
คุณก่อครับผมมีปัญหามาขอรบกวนอีกหน่อยครับ
ตอนนี้ผมทำ portfolio เสร็จแล้ว แต่ผมมีข้อสงสัยเรื่องของการ เอาไฟล์ใส่ซีดี นิดหน่อยที่ผมไม่แน่ใจ
เลยอยากขอถามคุณก่อดูครับ
1 ถ้าผมจะเอางาน portfolio ที่ทำโดย flash ใส่ซีดีไปให้คนอื่นดู ผมควรที่จะทำไฟล์
portfolio.swf ให้เป็นไฟล์ portfolio.exe เสียก่อนเพื่อที่จะทำให้คอมพิวเตอร์เครื่องที่ไม่มีโปรแกรม flash
สามารถเปิดดู portfolio ของผมได้อย่างงี้ใช่ไหมครับ
แล้วถ้าเกิดใน portfolio.exe ของผมมันมีการใช้ สกินวีดิโอ ของโปรแกรมด้วย (ClearExternalAll.swf)
อย่างงี้เวลาผมเอาไฟล์ portfolio.exe ใส่ซีดี ผมต้องเอาไฟล์ ClearExternalAll.swf ใส่ซีดีไปด้วยใช่ไหมครับ
ผมสงสัยว่า ถ้าคอมพิวเตอร์เครื่องที่ไม่มีโปรแกรม flash เปิด portfolio.exe ของผมขึ้นมา มันจะเห็นสกินวีดิโอตัวนี้
(ClearExternalAll.swf) ใน portfolio.exe ของผมไหมครับ
2 งานของผมมี ไฟล์portfolio มีการใช้สกินวีดิโอ แล้วก็มีไฟล์วีดิโอ
อย่างงี้เวลาที่ผมจะเอางานของผมไรต์ใส่ซีดี ผมต้องเอาไฟล์ไรต์ใส่ซีดี 3 อย่างคือไฟล์
portfolio.exe, ClearExternalAll.swf, ไฟล์วีดิโอที่ใช้.flv
แค่ 3 อย่างนี้เท่านั้นใช่ไหมครับ แล้วเวลาไรต์ใส่ซีดีก็ใช้ nero ไรต์ธรรมดาใช่ไหมครับ
3 ผมเคยลองไรต์งานของผมใส่ซีดี แล้วเปิดดู วิดีโอ ที่อยู่ใน portfolio.exe
ปรากฏว่าเวลาดู วีดิโอมันจะกระตุกบ่อยมากเลยครับ บางทีก็ช้ามากกว่าจะมา ตอนที่ดูจากไฟล์ที่อยู่ในคอม
ไม่เป็นไรนะครับดูได้ปกติดี แต่เวลาดูจากแผ่นซีดีจะมีอาการอย่างที่บอก สาเหตุนี้เป็นเพราะหัวอ่านซีดี
ไม่ดีอย่างงี้หรือเปล่าครับ หรือจะเป็นเพราะไฟล์วีดิโอนั้นอยู่ใน folder ที่ซ้อนกันหลายชั้นอย่างงี้ไหมครับ
(ประมาณ 2 ชั้น)
4 งานของผมเป็นงาน off line สำหรับดูในซีดี อย่างงี้เวลาที่ทำให้เป็นไฟล์ .exe ออกมา
ไม่ต้องตั้งค่าอะไรทั้งนั้นใช่ไหมครับ
1. ตัวหลักที่ใช้เปิดทำเป็น exe ครับ ตัวอื่นเป็น swf ไม่เป็นไรครับ มันดึงไปแสดงผลได้ อย่าลืมก๊อปใส่ไปด้วยละกันนะครับ
2. ครับ ในเครื่องเก็บไว้ในพาธไหน เวลาไรท์ก็โยนๆ ไปตามนั้นเลยครับ
3. ไม่เกี่ยวครับ น่าจะเกิดจากไฟล์ flv มีขนาดใหญ่ แล้วต้องอ่านแผ่นครับ
4. ไม่ต้องครับ
ขอบคุณจารย์ก่อมากครับ