•  

ยินดีต้อนรับสู่ ThaiFlashDev

ผู้เขียน หัวข้อ: การรับส่งค่าระหว่างไฟล์ swf ที่ถูกโหลดเข้ามาด้วยคำสั่ง Loader  (อ่าน 337 ครั้ง)

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
ผมมีไฟล์ swf  2 ไฟล์  ไฟล์แรกชื่อว่า main.swf  และไฟล์ที่สองชื่อ content.swf
สิ่งที่ผมจะทำคือ ผมจะให้ไฟล์ main.swf  โหลดไฟล์ content.swf เข้ามาเล่น ด้วยคำสั่ง Loader
เมื่อโหลดเข้ามาแล้ว ต้องการจะส่งค่าตัวแปรเข้าไปในไฟล์ content.swf และเมื่อปิดการทำงานของ
ไฟล์ content.swf  แล้ว ก็ต้องการจะส่งค่ากลับมายังไฟล์ main.swf ผมจะต้องเขียนแบบไหนครับ

สคริปในไฟล์  main.swf

โค๊ด: [Select]
var ldr:Loader=new Loader();
var mc:MovieClip=new MovieClip();
var id:String="std-001";

ldr.load(new URLRequest("bb.swf"));
addChild(ldr);

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,function01);
function function01(evt:Event):void {
// ต้องการจะส่งค่า  id ไปยังไฟล์   content.swf จะต้องเขียนอย่างไรครับ
}

ส่วนในไฟล์ content นั้นไม่ได้มีสคริปใด ๆ เพียงแต่ต้องการให้ trace( ค่าตัวแปรที่รับมาจากไฟล์ main.swf )
ออกมา  และให้ส่งค่ากลับมายังไฟล์ main.swf ว่าในไฟล์ content.swf นั้นมี จำนวน keyframe อยู่ทั้งหมดเท่าไหร่
เท่านั้นครับ

ขอบคุณสำหรับคำแนะนำครับ

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
ถ้าเอาง่ายสุดก็ดูการใช้งาน vector<MovieClip> ครับ โหลดเสร็จแล้วเอามาเก็บในนี้นะ มันจะได้อยู่ในรูปแบบ mc ให้เอามาใช้ได้ง่ายๆ
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
ขอบคุณสำหรับคำชี้แนะครับ  เดี๋ยวต้องขอเวลาไปค้นหาก่อนการใช้งาน vector<MovieClip>
ยังไม่เคยใช้งานแบบนี้เลยครับ

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
หลังจากงมหามา 2 วัน ก็ปรากฎว่า ไม่สามารถจะหาตัวอย่างได้เลยครับ ไม่ทราบว่าจะพออนุเคราะห์ แนวทางง่าย ๆ สักตัวอย่าง ได้รึเปล่าครับ ขอบคุณครับ

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
ลองวางต่อจากของคุณครับ ประมาณนี้น่าจะได้

โค๊ด: [Select]
var ldr:Loader=new Loader();
var mc:MovieClip=new MovieClip();
var id:String="std-001";
var loadedMedia:Vector.<MovieClip> = new Vector.<MovieClip>();

ldr.load(new URLRequest("bb.swf"));
addChild(ldr);

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,function01);
function function01(evt:Event):void {
     var media:* = ldr.content;
     loadedMedia.push(media);
}

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

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
ขอบคุณอีกครั้งสำหรับคำแนะนำครับ  แต่ว่าขอรบกวนเพิ่มเติมอีกนิดได้ไหมครับ
คือ ติด Error อยู่ในส่วนนี้นะครับ

var loadedMedia:Vector.<MovieClip> = new Vector.<MovieClip>();

ข้อความแจ้ง Error
1084: Syntax error: expecting identifier before lessthan.

ขอบคุณล่วงหน้าสำหรับคำแนะนำครับ

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
เช็คดูใหม่ครับ
ลอง new ไฟล์มาใหม่ เป็น as3 ใน timeline ใส่
โค๊ด: [Select]
var ldr:Loader=new Loader();
var mc:MovieClip=new MovieClip();
var id:String="std-001";
var loadedMedia:Vector.<MovieClip> = new Vector.<MovieClip>();
ไม่มี error ครับ ดังนั้น ส่วนนี้ไม่ได้มีปัญหาครับ ถ้าจะมีก็เป็นไปได้ว่า
-ถ้าเป็นการถึง action จาก as จะค้อง import สิ่งที่เกี่ยวข้องด้วย เช่น import flash.display.MovieClip;
-อาจมีการเขียนอะไรไว้นอกจากนี้แล้วยังไม่จบคำสั่ง เช่น เปิดวงเล็บไว้ก่อนหน้านี้ มีจุดหรือคอมมาก่อนหน้านี้
-ถ้ารันบน as2 มีปัญหาแน่นอน
-เขียนคำสั่งผิดหรือไม่ครบ
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
ขอบคุณอีกครั้งสำหรับคำแนะนำครับ
ผมได้ลองทำตามแล้ว คือ สร้าง ไฟล์ขี้นมาใหม่เลย เลือกเป็น action script3.0
จากนั้น ผมก็ไม่ได้สร้าง และ ไม่ได้เขียนอะไรเลย ใส่แค่ script ด้านล้างนี้แค่บรรทัดเดียว

var loadedMedia:Vector.<MovieClip> = new Vector.<MovieClip>();

ผลปรากฏว่า ก็ยังคงแจ้ง Error ออกมาดังเดิมครับ
ข้อความแจ้ง Error

1084: Syntax error: expecting identifier before lessthan.

ลืมบอกไปผมใช้ Flash CS3 ไม่รู้จะมีผลอะไรเกี่ยวข้องไหมกับ Error


ต้องขออภัยจริง ๆ นะครับ ที่รบกวนไม่เลิกสักที

ออฟไลน์ be_smile

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 19
วันนี้ผมได้ทดสอบสคริปกับ Flash Cs5 ปรากฎว่าไม่ Error ครับ แต่พอเอาสคริปไปใช้ใน Flash Cs3 กลับ Error ซึ่งผมก็ยังไม่เข้าใจว่าทำไมจึงเป็นเช่นนั้น แต่อย่างไรก็ตาม ผมก็ขอขอบคุณ คุณ thora ด้วยครับ ที่ให้คำแนะนำเป็นอย่างดีมาตลอด

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
คงจะเป็นที่เวอร์ชันเก่าไปครับ เครื่องมือบางตัวจึงไม่มี
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ