このLongLongTaskクラスを使用するスクリプトを以下に示します。
リスト10
var result: Date = new Date();
Timeline {
repeatCount: Timeline.INDEFINITE
autoReverse: true
keyFrames: [
KeyFrame {
time: 0s
action: function() {
// 非同期処理クラスを生成し,非同期処理を開始する
def task: LongLongTask;
task = LongLongTask {
// 非同期処理後にコールされる関数
onDone: function(flag: Boolean) : Void {
result = task.result;
}
}
}
},
KeyFrame {
time: 5s
}
]
}.play();
var ball = Circle { <<省略>> }
<<省略>>
Stage {
title: "Long Long Task"
scene: Scene {
width: 300
height: 200
content: [
ball,
Text {
font : Font {
size: 20
}
x: 10,
y: 100
content: bind "{result}"
}
]
}
}
ここでは,
AbstractAsyncOperationクラスのサブクラスは生成するだけで自動的にstart関数がコールされます。したがって,
非同期処理クラスを使用するスクリプトが非同期処理が終わった後にコールバック関数を設定したい場合,
実行結果を図5に示します。図5はアプレットページにリンクにしていますので,
このようにAbstractAsyncOperationクラスを用いれば,
しかし,
ここではソースの解説は行いませんが,
キューとはリストやマップなどと同じようにデータのコンテナの一種です。キューにはデータを追加するメソッドと,
キューはイベント駆動のアプリケーションや,
アプレットページにソースも示しましたので,