Archived:Web Runtime WidgetのJavaScriptでFlash Liteと通信する方法
We do not recommend Flash Lite development on current Nokia devices, and all Flash Lite articles on this wiki have been archived. Flash Lite has been removed from all Nokia Asha and recent Series 40 devices and has limited support on Symbian. Specific information for Nokia Belle is available in Flash Lite on Nokia Browser for Symbian. Specific information for OLD Series 40 and Symbian devices is available in the Flash Lite Developers Library.
Article Metadata
Code Example
Article
必要事項:
Flash Liteの知識
JavaScriptの知識
Contents |
Flash Lite
ステップ:
1) Flashファイルを作成する
フレーム番号1
("actionscript"レイヤ)
アクションスクリプトウィンドウで、下記変数を定義します。
var total_ram; var free_ram;
フレーム番号5
画面上にテキストボックスを持つレイヤを新たに作成します。
("objects"レイヤ)
スクリーン上にテキストボックスを2つ別々のレイヤで作成し、テキストボックス用に'var'で定義した変数を割当てます。
Total_ram_txt Free_ram_txt
そして、メモリ容量のレベルを示すため、画面上にムービークリップを作成します。
注意事項: 「シンボルに変換」(Convert to Symbol)において、「基準点」(Registration)を以下に示す画像のように(bottom)します。
フレーム番号5
("actionscript"レイヤ)
//Set the Interval of updating text boxes on the screen.
var intervalId = setInterval( updateScreen, 1000 ); //1 Second
function updateScreen()
{
if(total_ram != undefined && free_ram != undefined )
{
total_ram_txt = total_ram + " M"; //set Total ram in textfield
free_ram_txt = free_ram + " M"; //set Free ram in textfield
_root.mem_lvl_mc._height = (free_ram*50/total_ram); //Update Level on the screen
}
}
SetInterval()関数は、組込みのアクションスクリプト関数です。時間間隔を設定した後、定期的に部分コードまたは関数を呼出します。
これで、Flash部分の作成は終了です。
SWFファイルをパブリッシュし、その名前をmemInfo.swfとします。
Main HTML
下記内容でHTMLファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml/"> <head> <title>Memory Info</title> <script language="javascript">AC_FL_RunContent = 0;</script> <script src="AC_RunActiveContent.js" language="javascript"></script> </head> <BODY BGCOLOR="#FFFFFF" onload = "load();"> <embed id="systeminfo" type="application/x-systeminfo-widget" hidden="yes"></embed> <script language="javascript"> if (AC_FL_RunContent == 0) { alert("This page requires AC_RunActiveContent.js."); } else { AC_FL_RunContent( 'codebase', '[http]://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0', 'width', '240', 'height', '320', 'src', 'network_signal240x320', 'quality', 'high', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'align', 'middle', 'play', 'true', 'loop', 'true', 'scale', 'showall', 'wmode', 'window', 'devicefont', 'false', 'id', 'memInfo', 'bgcolor', '#ffffff', 'name', 'memInfo', 'menu', 'true', 'allowFullScreen', 'false', 'allowScriptAccess','sameDomain', 'movie', 'memInfo', 'salign', '' ); //end AC code } </script> <noscript> <OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0', ID=memInfo align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="false" /> <param name="movie" value="memInfo.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="memInfo.swf" quality="high" bgcolor="#ffffff" width="240" height="320" name="memInfo" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </OBJECT> </noscript> </div> </BODY> </HTML>
注意事項:
<embed id="systeminfo" type="application/x-systeminfo-widget" hidden="yes"></embed>
上記タグを使用することにより、バッテリーレベル、ネットワーク強度、使用可能なメモリ量といったシステム情報へアクセスすることができます。
またこれは、<body>タグの中で定義する必要があります。
Flash埋め込みオブジェクト(<embed>タグ)中の'name'属性の値は、JavaScriptがFlashファイル(ここでは"memnfo")と通信するために使用します。
Javascript
Javascriptファイルは、下記の通りです。
//USER DEFINED VARIABLES
var sysinfo = null;
var drives = 0;
var totalRamSize;
var freeRamSize;
var space;
var loop = 0;
//---USER FUNCTIONS
function load()
{
sysinfo = document.embeds[0]; //Must for accessing system attributes
Runtimer();
}
function Runtimer()
{
//Calls itself every 2 second and calls AC_communicateWithFlash() function
t=setTimeout("Runtimer()",2000); //2 Second
if(loop != 0)
{ AC_communicateWithFlash();}
loop = 1;
}
function checkRamSpace()
{
// get total RAM size in bytes
totalRamSize = sysinfo.totalram;
space = Number(Number(totalRamSize) / Number(1048576)); //MB
totalRamSize = space.toFixed(2);
// get free RAM size in bytes
freeRamSize = sysinfo.freeram;
space = Number(Number(freeRamSize) / Number(1048576)); //MB
freeRamSize = space.toFixed(2); //Display 2 Decimal Place
}
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{
return document.getElementById(movieName);
}
}
function AC_communicateWithFlash()
{
//this function checks for Current Ram Space and Drives Space
//and sets the values inside flash.
checkRamSpace();
//memInfo defined in HTML file used for referencing flash Object
var flashMovie=getFlashMovieObject("memInfo");
//following steps assigns the JAVASCRIPT variables values to flash variables placed on
the root timeline.
flashMovie.SetVariable("/:total_ram",totalRamSize);
flashMovie.SetVariable("/:free_ram",freeRamSize );
}
ダウンロード
ソースコードのダウンロード Media:MemInfo.zip
ファイル中に含まれているもの:
1. Flashソースファイル
2. JavaScriptとその関連ファイル


(no comments yet)