Bài viết này sẽ hướng dẫn bạn sử dụng ActionScript 2 và 3(AS2 – AS3) để gọi một hàm(Function) hoặc 1 lệnh JavaScript từ file flash.
1ActionScript 3:
Đầu tiên bạn cần tạo một hàm JavaScript mà bạn muôn gọi ra, ví dụ:
Quote
<script>
function showAlert()
{
window.alert('Hi, Everyone!');
}
</script>
Tiếp theo bạn sử dụng đoạn ActionScript sau để gọi hàm JavaScript trên ra:
Quote
showButton.addEventListener(MouseEvent.CLICK, this.CallJSFunction);
function CallJSFunction(event:MouseEvent)
{
ExternalInterface.call("showAlert()");
}
Để minh họa cho ứng dụng này bạn có thể tham khảo demo của bài viết
ứng dụng nhỏ này với chức năng tính tổng 2 số và hiện kết quả trên màn hình, kết hợp với việc gọi hàm javascript như trên ứng dụng này sẽ đồng thời sẽ show kết qua bằng popup window. Và code tương ứng được sử dụng trong demo là:
Javascript:
Quote
<script>
function showAlert(e)
{
window.alert(e);
}
</script>
ActionScript 3:
showButton.addEventListener(MouseEvent.CLICK, this.CallJSFunction);
function CallJSFunction(event:MouseEvent)
{
inputField3.text = Number(inputField1.text) + Number(inputField2.text);
ExternalInterface.call("showAlert(\'" + inputField3.text + "\')");
}
Lưu ý: để chức năng hoạt động, bạn nhớ thêm một số thư viện vào ActionScript:
Quote
import flash.display.*;
import flash.events.*;
import flash.external.*;
import flash.text.*;
2ActionScript 2:Bạn có thể sử dụng lệnh getURL để gọi hàm javascript trong AS2. Như đoạn code bên dưới:
getURL("javascript:showAlert();");
Bạn có thể test nhanh bằng đoạn code:
getURL("javascript:alert('Hi, Everyone!');");
Lưu ý chung là bạn cần phải thêm thuộc tính allowScriptAccess với giá trị là always cho các thẻ HTML hiển thị flash(object, embeb):
<param name="allowScriptAccess" value="always" />cho thẻ object
allowscriptaccess="always" cho thẻ embeb
Chúc bạn thành công.