root/as3/gunyarapaint/trunk/picokakiko/src/picokakiko.as

リビジョン 1090, 3.0 kB (コミッタ: tasuku, コミット時期: 5 年 前)

r41@poppop (orig r40): tasuku | 2008-03-25 23:04:42 +0900
ログビューワできた。参照お絵カキコも出来るようになった。やほーい。

Line 
1 import flash.events.Event;
2
3 import gunyarapaint.Com;
4
5 import mx.controls.Alert;
6 import mx.events.FlexEvent;
7
8 private var comm:Com;
9 private var mmlId:uint;
10 private var played:Boolean = false;
11 private var poster:Boolean = false;
12 private var redirectUrl:String;
13 private const ALERT_TITLE:String = 'ピコカキコ';
14
15 private var onPost:Boolean = false;
16
17 public function init():void {
18   comm = new Com;
19   comm.addEventListener('completeGetData', commCompleteHandler);
20   if (parameters['mmlUrl']) {
21     var url:String = parameters['mmlUrl'];
22     comm.sendGetUrlRequest(url);
23     mml.enabled = false;
24   }
25   if (parameters['postUrl'] && parameters['cookie'] && parameters['magic']) {
26     comm.setPostEnv(parameters['postUrl'], parameters['cookie'], parameters['magic']);
27     postPicoButton.enabled = true;
28   }
29   if (parameters['redirectUrl']) {
30     redirectUrl = parameters['redirectUrl'];
31   }
32   if (parameters['mmlId']) {
33     mmlId = uint(parameters['mmlId']);
34   }
35   mml_player.addEventListener('compileComplete', playerCompileCompleteHandler);
36
37   playButton.addEventListener(FlexEvent.BUTTON_DOWN, playButtonHandler);
38   stopButton.addEventListener(FlexEvent.BUTTON_DOWN, stopButtonHandler);
39   postPicoButton.addEventListener(FlexEvent.BUTTON_DOWN, postPicoButtonHandler);
40 }
41
42 private function playerCompileCompleteHandler(evt:Event):void {
43   mml_warnings.text = mml_player.getWarnings();
44   stopButton.enabled = true;
45   played = true;
46 }
47
48 private function commCompleteHandler(evt:Event):void {
49   if (onPost) {
50     onPost = false;
51     if (comm.getHttpStatus() == 400 || comm.getError()) {
52       // error
53       Alert.show(comm.getStringData(), ALERT_TITLE);
54       postPicoButton.enabled = true;   
55     } else {
56       // redirect
57       Com.redirect(redirectUrl);
58     }
59   } else {
60     mml.text = comm.getStringData();
61     mml.enabled = true;
62     playButton.enabled = true;
63   }
64 }
65
66 private function playButtonHandler(evt:Event):void {
67   playButton.enabled = false;
68   mml_player.play(mml.text);
69 }
70
71 private function stopButtonHandler(evt:Event):void {
72   mml_player.stop();
73   playButton.enabled = true;
74   stopButton.enabled = false;
75 }
76
77 private function postPicoButtonHandler(evt:Event):void {
78   if (messageTextArea.text == '') {
79     Alert.show('書き込みが空です。曲のタイトルなどの情報を書き込んでください。', ALERT_TITLE);
80     return;     
81   }
82   if (mml.text == '') {
83     Alert.show('ピコ文字が空です。ピコピコしてください。', ALERT_TITLE);
84     return;
85   }
86   if (!played) {
87     Alert.show('投稿するためには、1回再生することが必要です。', ALERT_TITLE);
88     return;
89   }
90   if (mml_player.getWarnings() != '') {
91     Alert.show('投稿するためには、ピコ警告を全て取り除くことが必要です。', ALERT_TITLE);
92     return;
93   }
94   postPicoButton.enabled = false;
95   onPost = true;
96   comm.postPico(fromTextInput.text, messageTextArea.text, mml.text, mmlId);
97 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。