ทำให้ As3 และ Javascript คุยกันได้ ฉบับ cross-domain by rainbow

31
Jan
0

จากเดือนที่แล้วมีบทความ ทำให้ As3 และ Javascript คุยกันได้ ไอเทคนิคนี้เราได้เอาไปใช้กับ project UMBO ครับ ตอนอยู่บน localhost ก็ทำงานได้ปกติดีครับ แต่เมื่อเอาขึ้นเซอร์เวอร์ไปแบบแบ่งเป็นหลายๆเซอร์เวอร์เนี่ย ทำให้เกิดปัญหาขึ้นมา เพราะ ตัว flash กับ website อยู่คนละเซอร์เวอร์กัน
เหตุการณ์อย่างนี้ ต่อให้ตั้ง attribute allowScriptAccess ของ flash object เป็น always ก็ไม่สามารถทำงานได้

วิธีที่จะทำให้ flash/flex นี้ ยอมรับ javascript แบบ cross-domain ได้ จะต้องไปเพิ่มโค๊ด

Security.allowDomain( “www.example.com” );

ไปก่อนที่จะรับ javascript แบบในบทความ `ทำให้ As3 และ Javascript คุยกันได้`

ทำให้ As3 และ Javascript คุยกันได้ by plug.in

28
Dec
0

เรียก Function AS3 ด้วย Javascript

http://blog.code-head.com/calling-a-javascript-function-from-actionscript-3-flash

ง่ายมากมายด้วย ExternalInterface

import flash.external.ExternalInterface;
...
ExternalInterface.call("your_javascript_function()");

จะเอาค่า Return ก็ได้


var x:int = ExternalInterface.call("get_x()");

ส่ง Parameter กะได้ :-D

var retval:int = ExternalInterface.call("some_js_function", "the-argument");

เรียก Function AS3 ด้วย Javascript

http://codingforums.com/showthread.php?t=152181

Javascript

			// Provides the proper address for the movie depending on browser
			function getFlashMovie(movieName) {
			  	var isIE = navigator.appName.indexOf("Microsoft") != -1;
			  	return (isIE) ? window[movieName] : document[movieName];
			}

			function playMovie() {
				getFlashMovie("video").JStoASviaExternalInterface("start");
			}

Action Script

function getTextFromJavaScript(str:String):Void {
		if (str = "start") {
startVideo();
}
}
ExternalInterface.addCallback("JStoASviaExternalInterface", this, getTextFromJavaScript);

addFrameScript with parameters by rainbow

1
Dec
0

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

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

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

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

gzip ระหว่าง as3 + php by plug.in

30
Nov
0

อันนี้ก็มาจากการพยายามลดขนาดข้อมูลที่ต้องส่งไปมาระหว่าง Php กับ Flash ซึ่งเป็น Text ล้วนๆ ซึ่งก็ใหญ่ไม่ใช่เล่นเหมือนกัน

เลยพยายามลองใช้ gzip ที่มีติดอยู่กับ php เป็น default อยู่แล้ว

ประเด็นคือ gzip ของ php มี function เยอะมากมาย ประมาณ 3-4 แบบได้

ส่วน as3 ก็ไม่รู้ว่ามีหรือเปล่า ต้องหาอะไรเพิ่มมั้ย ก็เลยต้องศึกษาเพิ่มกันหน่อย

หลังจากวิจัยมาเกือบวัน ก็สรุปได้ผลตามนี้

As3 Class from string by plug.in

30
Nov
0

เรื่องมันมีอยู่ว่า…

จะทำ Effect ในเกม Flash โดยให้เพิ่ม Effect ง่ายๆโดยไม่ต้องโค้ดใหม่ให้วุ่นวาย เลยจำเป็นที่ต้อง

ก็ไปหาโค้ดมาตามปกติ