バッチスクリプトを使用して、特定のネットワーク内のコンピューターの可用性(ping)を確認するプロジェクトに取り組んでいます。また、スクリプトの結果から完全に一致する場合は、FlashベースのUIのオブジェクトの色を変更します。
例:
1)スクリプトはチェックを実行し、results.txtに出力します。
192.168.0.1 = UP
192.168.0.2=ダウン
192.168.0.3 = UP
2)AS3を使用して、このファイルを読み取り、「192.168.0.1=UP」のような文字列を検索したいと思います。一致するものがある場合は、オブジェクトの色が緑に変わります。それ以外の場合は、REDとして設定されます。
これまでのところ、次を使用して、Flash内のスクリプトから出力ファイルをインポートすることができました。
var textLoader:URLLoader = new URLLoader();
textLoader.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e:Event):void {
trace(e.target.data);
}
textLoader.load(new URLRequest("Path:/To/result.txt"));
AS3でファイルを「192.168.0.1=UP」だけで検索し、一致する場合は色を変更することはできないことを理解しています。
インポートしたテキストをどのように利用できますか?必要なテキストの部分のみを使用する文字列を作成してから、一致する場合はオブジェクトに色を付けるためにIFステートメントを作成する必要がありますか?
前もって感謝します。
アップデート:
Gunther Foxのおかげで、コード全体をまとめることができました。
import flash.geom.ColorTransform;
var textLoader:URLLoader = new URLLoader();
textLoader.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e:Event):void {
trace(e.target.data);
if (e.target.data.indexOf("192.168.0.1=UP") != -1) {
var colorGREEN:ColorTransform = <instance_name>.transform.colorTransform;
colorGREEN.color = 0x00FF00;
<instance_name>.transform.colorTransform = colorGREEN;
}
else {
var colorRED:ColorTransform = <instance_name>.transform.colorTransform;
colorRED.color = 0xFF0000;
<instance_name>.transform.colorTransform = colorRED;
}
}
textLoader.load(new URLRequest("Path:/To/result.txt"));
これで、AS3は、バッチスクリプトの出力に基づいて、特定のオブジェクトの色を変更します。
更新2
テキストファイルのリロードに関する問題を解決しました。
var timer:Timer = new Timer(10000);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(evt:TimerEvent):void {
var textLoader:URLLoader = new URLLoader();
textLoader.addEventListener(Event.COMPLETE, onLoaded);
textLoader.load(new URLRequest("C:/Folder/output/result.txt"));
}