アクションScript 3 Cookbookからの抜粋(八)


1、アクションScriptはJavaScriptを呼び出します.
call()方法は少なくとも一つのパラメータを必要として、javascript関数名を指定します.
External Interface.call(「changeTitle」);
JavaScript関数自体がパラメータを必要とする場合、call()方法パラメータに引き続き追加します.例えば、changeTitle()関数はパラメータを受け取ります.External Interface.call(「changeTitle」、「アクションScript 3.0 Cookbook」).
=========================================================================================================================
 
2、Javascript呼び出しアクションScript
External Interface.addCallback()を使ってアクションScript関数を登録し、その後JavaScript側で呼び出しを行います.
addCallback()メソッドは、2つのパラメータを受信します.最初のパラメータは、Steringタイプの関数名です.ブラウザは、この名前で呼び出す関数を知り、2番目のパラメータは、ブラウザが定義された関数名を呼び出すときに実行する実際のアクションScript関数です.下記の例では関数displayMessageを登録し、JavaScriptの別名はshowMessage:External Interface.addCallback(「show Message」、displayMessage)となります.
ブラウザのFlashプレイヤーには、ActiveX(object)タグとplug-i(embed)タグの2種類があります.
例:
<script language="JavaScript">
var flashPlayer;
function detectFlashPlayer( ) {
	if(navigator.appName.indexOf("Microsoft") != -1) {
		flashPlayer = window.objectId;
	}
	else {
		flashPlayer = window.document.embedName;
	}
}
</script>

//body onload
<body onLoad="detectFlashPlayer">
//  
flashPlayer.showMessage( );

//     
flashPlayer.showMessage("example message");
============================================================================================================================
 
3、htmlのタグのparamを通してswfにパラメータを渡す
HTML部分はラベルにアクションScriptでは、どのような可視化コンポーネントでもあるroot.loader Info.parameters属性からFlash Varsが伝えてくるパラメータを得ることができます.root.loader Info.parameters属性は、関連する配列です.
============================================================================================================================
 
4、ファイルをダウンロードする
var fileReference:FileReference = new FileReference( );

var urlRequest:URLRequest = new URLRequest("http://www.myexamplesite.com/example.txt");
fileReference.download(urlRequest);

//download( )                         

fileReference.download(urlRequest, "11.txt");
download()メソッドはtry...catch文で実行するほうがいいです.この方法は異常を投げるかもしれないので、主に2つの異常があります.Illegal Operation ErrとSecurityErr.保存ダイアログが開いている場合は、Windowsがダウンロードできないためです.
例:
try {
	fileReference.download(urlRequest, fileName);
}
catch (illegalOperation:IllegalOperationError) {
	// code to handle an illegal operation error
}
catch (security:SecurityError) {
	// code to handle a security error
}
 fileReference.addEvent Listener(IOErrEvent.IOIOUERROR,onIOErr);
============================================================================================================================
 
5、ファイルのダウンロードの進捗
fileReference.addEvent Listener(ProgresEvent.PROGRESS,onFilePrograss);
 
prvate function on FilePrograess(イベント:Progess Event):void{    fileProgress Field.text=event.bytes Loaded+“of”+event.bytes Total+“bytes”;}ダウンロードが完了するとFilereferenceオブジェクトからcompletteeイベントが発生します.タイプはEvent:fileReference.addEvent Listener(Event.cOMPLE,one)です.
============================================================================================================================
 
6、ブラウズダイアログで選択したファイル
一、フィルター
var fileFilter 1:FileFilter=new FileFilter(「Images」、「*.png;*.gif;*.jpg」);var fileFilter 2:FileFilter=new FileFilter(「Dockments」、「*.txt;*.doc;*.pdf;*.rtf」);var fileFilter 3:FileFilter=new FileFilter(Archives)、「*.zip;*.tar;*.hqx」)var fileFilter 4:FileFilter=new FileFilter(「All」、「*.」);fileReference.browse([fileFilter 1,fileFilter 2,fileFilter 3,fileFilter 4])
 
二、選択
ユーザがファイルを選択し、Openボタンをクリックすると、FileReferenceオブジェクトからselectイベントが発生します.
fileReference.addEvent Listener(Event.SELECT,オンSelectFile);
//selectedFileTextField.text=fileReference.name;
または
fileReference.addEvent Listener(Event.Concel Browse);
=============================================================================================================================