| 1 |
package |
|---|
| 2 |
{ |
|---|
| 3 |
import com.nitoyon.potras.*; |
|---|
| 4 |
import flash.display.*; |
|---|
| 5 |
import flash.text.TextField; |
|---|
| 6 |
import flash.events.*; |
|---|
| 7 |
import flash.utils.*; |
|---|
| 8 |
import caurina.transitions.Tweener; |
|---|
| 9 |
|
|---|
| 10 |
[SWF(width="640", height="480", backgroundColor="#ffffff")] |
|---|
| 11 |
public class KanaKeyboard extends Sprite |
|---|
| 12 |
{ |
|---|
| 13 |
private static var TABLE:Object = |
|---|
| 14 |
{"3" : "あ", "e" : "い", "4" : "う", "5" : "え", "6" : "お", |
|---|
| 15 |
"t" : "か", "g" : "き", "h" : "く", ":" : "け", "b" : "こ", |
|---|
| 16 |
"x" : "さ", "d" : "し", "r" : "す", "p" : "せ", "c" : "そ", |
|---|
| 17 |
"q" : "た", "a" : "ち", "z" : "つ", "w" : "て", "s" : "と", |
|---|
| 18 |
"u" : "な", "i" : "に", "1" : "ぬ", "," : "ね", "k" : "の", |
|---|
| 19 |
"f" : "は", "v" : "ひ", "2" : "ふ", "^" : "へ", "-" : "ほ", |
|---|
| 20 |
"j" : "ま", "n" : "み", "]" : "む", "/" : "め", "m" : "も", |
|---|
| 21 |
"7" : "や", "8" : "ゆ", "9" : "よ", |
|---|
| 22 |
"o" : "ら", "l" : "り", "." : "る", ";" : "れ", "\\" : "ろ", |
|---|
| 23 |
"0" : "わ", "!" : "を", "y" : "ん", |
|---|
| 24 |
"@" : "@"}; |
|---|
| 25 |
|
|---|
| 26 |
private var lists:Object = {}; |
|---|
| 27 |
|
|---|
| 28 |
public function KanaKeyboard() |
|---|
| 29 |
{ |
|---|
| 30 |
var t:TextField = new TextField(); |
|---|
| 31 |
addChild(t); |
|---|
| 32 |
|
|---|
| 33 |
var sprites:Object = {}; |
|---|
| 34 |
var keys:Array = []; |
|---|
| 35 |
for(var key:String in TABLE) |
|---|
| 36 |
{ |
|---|
| 37 |
keys.push(key); |
|---|
| 38 |
} |
|---|
| 39 |
|
|---|
| 40 |
var traceCallback:Function = function():void |
|---|
| 41 |
{ |
|---|
| 42 |
t.text = "Loading... " + keys.length.toString(); |
|---|
| 43 |
key = keys.shift(); |
|---|
| 44 |
var list:ClosedPathList = PotrAs.traceLetter(TABLE[key], 200); |
|---|
| 45 |
lists[key] = list; |
|---|
| 46 |
|
|---|
| 47 |
if(keys.length == 0) |
|---|
| 48 |
{ |
|---|
| 49 |
removeChild(t); |
|---|
| 50 |
stage.addEventListener("keyDown", keyDownHandler); |
|---|
| 51 |
} |
|---|
| 52 |
else |
|---|
| 53 |
{ |
|---|
| 54 |
setTimeout(traceCallback, 10); |
|---|
| 55 |
} |
|---|
| 56 |
} |
|---|
| 57 |
traceCallback(); |
|---|
| 58 |
} |
|---|
| 59 |
|
|---|
| 60 |
private function keyDownHandler(event:*):void |
|---|
| 61 |
{ |
|---|
| 62 |
var c:String = String.fromCharCode(event.charCode).toLowerCase(); |
|---|
| 63 |
var list:ClosedPathList = lists[c]; |
|---|
| 64 |
if(list) |
|---|
| 65 |
{ |
|---|
| 66 |
var sprite:Sprite = new Sprite(); |
|---|
| 67 |
sprite.graphics.beginFill(0x999999); |
|---|
| 68 |
sprite.graphics.lineStyle(1, 0x000000); |
|---|
| 69 |
list.draw(sprite.graphics); |
|---|
| 70 |
sprite.graphics.endFill(); |
|---|
| 71 |
var s:Sprite = new Sprite(); |
|---|
| 72 |
s.addChild(sprite); |
|---|
| 73 |
sprite.x = -sprite.width / 2; |
|---|
| 74 |
sprite.y = -sprite.height / 2; |
|---|
| 75 |
|
|---|
| 76 |
s.x = loaderInfo.width / 2; |
|---|
| 77 |
s.y = loaderInfo.height / 2; |
|---|
| 78 |
|
|---|
| 79 |
s.alpha = 0.2; |
|---|
| 80 |
s.scaleX = s.scaleY = 0.01; |
|---|
| 81 |
s.rotation = 360 * Math.random() - 180; |
|---|
| 82 |
var r:Number = 400 * Math.random(); |
|---|
| 83 |
var theta:Number = Math.PI * 2 * Math.random(); |
|---|
| 84 |
|
|---|
| 85 |
Tweener.addTween(s, { |
|---|
| 86 |
time : 1.5, |
|---|
| 87 |
alpha : 1, |
|---|
| 88 |
transition : "easeInCubic" |
|---|
| 89 |
}); |
|---|
| 90 |
|
|---|
| 91 |
Tweener.addTween(s, { |
|---|
| 92 |
time : 0.7, |
|---|
| 93 |
delay : 1.8, |
|---|
| 94 |
alpha : 0 |
|---|
| 95 |
}); |
|---|
| 96 |
|
|---|
| 97 |
Tweener.addTween(s, { |
|---|
| 98 |
time : 2.5, |
|---|
| 99 |
rotation : 360 * Math.random() - 180, |
|---|
| 100 |
transition : "easeOutCubic" |
|---|
| 101 |
}); |
|---|
| 102 |
|
|---|
| 103 |
Tweener.addTween(s, { |
|---|
| 104 |
time : 2.5, |
|---|
| 105 |
x : s.x + r * Math.sin(theta), |
|---|
| 106 |
y : s.y + r * Math.cos(theta), |
|---|
| 107 |
transition : "easeInCubic", |
|---|
| 108 |
_scale: 12.0, |
|---|
| 109 |
onComplete : function():void{ |
|---|
| 110 |
removeChild(s); |
|---|
| 111 |
} |
|---|
| 112 |
}); |
|---|
| 113 |
|
|---|
| 114 |
addChild(s); |
|---|
| 115 |
} |
|---|
| 116 |
} |
|---|
| 117 |
} |
|---|
| 118 |
} |
|---|