addFrameScript with parameters by

1
Dec
0

AS3 จะมีฟังค์ชัน addFrameScript เป็นฟังค์ชั่นของออบเจค MovieClip ใช้สำหรับให้รันฟังค์ชันที่กำหนดไว้เมื่อ movieClip รันมาถึงเฟรมที่เรากำหนดไว้

MovieClip.addFrameScript(frame_number:uint,function_to_call:Function)

frame_number – เฟรมที่เราต้องการให้ฟังค์ชั่นของเราเริ่มทำงาน มีการลำดับเฟรมแบบเริ่มต้นที่ 0

function_to_call – ฟังค์ชันที่เราต้องการให้เรียก

function helloworld ()

{

trace( “hello world!” );

}

this.addFrameScript( 1, helloworld );

แต่เราไม่สามารถใช้ตัวแปรอะไรเข้าไปในฟังค์ชันได้เลย แต่มีวิธีที่จะทำให้ส่งผ่านตัวแปรได้ คือ เอาชื่อหัวข้อไป search google ก็เจอ = =” อันนี้เป็นวิธีของ Ian Thomas delegate class.

โดยเราจะสร้าง class delegate ขึ้นมา หน้าตาจะเป็นแบบข้างล่าง

package
{

public class Delegate

{

public static function create(handler:Function,…args):Function

{

return function(…innerArgs):void

{

handler.apply(this,innerArgs.concat(args));

}

}

}

}

โดย Delecate.create() จะเป็นฟังค์ชันที่จะช่วยให้เราใช้ตัวแปรใน addFrameScript ได้

วิธีใช้

public function example()

{

for (var i:int=0;i<10;i++)

{

var mc:MovieClip = new Quad() as MovieClip;

addChild(mc);

mc.addFrameScript( mc.totalFrames-1, Delegate.create(myFunction,i) );

}

}

private function myFunction(i:int):void

{

trace(i);

}

Delegate.create( function_to_call:Function, arg1, arg2, … )

unction_to_call – ฟังค์ชันที่เราต้องการให้เรียก

arg1, arg2, … – ตัวแปรที่ต้องการส่งเข้าฟังค์ชัน

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน