チェンジセット 2857
- コミット日時:
- 2009/07/01 03:15:39 (9 ヶ月前)
- ファイル:
-
- as3/gunyarapaint/trunk/ChangeLog (更新) (1 diff)
- as3/gunyarapaint/trunk/picokakiko/src/picokakiko.as (更新) (10 diffs)
- as3/gunyarapaint/trunk/picokakiko/src/picokakiko.mxml (更新) (1 diff)
- as3/gunyarapaint/trunk/picokakiko/src/picoplayer.mxml (更新) (1 diff)
- as3/gunyarapaint/trunk/picokakiko/src/picosetting.mxml (追加)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/trunk/ChangeLog
r2856 r2857 2 2 3 3 * gunyarapaint: ��̒��S�_������o�X�����Ƃ����B�����Əd�����ȁ[�B 4 * pikokakiko: OffGao����C���_��荞�ށBundo/redo/font/pause�B�T���v��URL�̕ύX�͔F�߂Ȃ��B 4 5 5 6 2009-06-08 Tasuku SUENAGA <a at razil.jp> as3/gunyarapaint/trunk/picokakiko/src/picokakiko.as
r2745 r2857 1 import com.txt_nifty.sketch.flmml.MMLEvent;1 import com.txt_nifty.sketch.flmml.MMLEvent; 2 2 3 3 import mx.controls.Alert; … … 6 6 import mx.utils.StringUtil; 7 7 import mx.events.ResizeEvent; 8 import mx.managers.PopUpManager; 9 import mx.core.IFlexDisplayObject; 10 import flash.events.KeyboardEvent; 11 import flash.net.SharedObject; 8 12 9 13 import org.libspark.nicopedia.Com; 14 15 import picosetting; 10 16 11 17 private var mmlId:uint; … … 16 22 private var m_timer:Timer; 17 23 24 private const UNDO_MAX:int = 64; 25 private var mmlUndoBuffer:Vector.<String> = new Vector.<String>(UNDO_MAX); 26 private var undoCount:int = 0; 27 private var changeCount:int = 0; 28 29 private var setting_window:picosetting = new picosetting(); 30 31 private var local:SharedObject; 32 18 33 public function init():void { 34 // for test 35 //parameters['mmlUrl'] = 'http://dic.nicovideo.jp/mml/714'; 19 36 if (parameters['mmlUrl']) { 20 37 var url:String = parameters['mmlUrl']; … … 40 57 this.addEventListener(ResizeEvent.RESIZE, appResizeHandler); 41 58 59 //アンドゥバッファのクリア 60 var i:int; 61 for (i = 0; i < UNDO_MAX ; i++) { 62 mmlUndoBuffer[i] = ""; 63 } 64 65 //フォント設定の読み込み 66 local = SharedObject.getLocal("picosetting"); 67 if (!local.data.fontname) { 68 local.data.fontname = mml.getStyle("fontFamily"); 69 } 70 if (!local.data.fontsize) { 71 local.data.fontsize = mml.getStyle("fontSize"); 72 } 73 mml.setStyle("fontFamily",local.data.fontname); 74 mml.setStyle("fontSize",local.data.fontsize); 75 76 updateUndoRedoButton(); 77 42 78 playButton.addEventListener(FlexEvent.BUTTON_DOWN, playButtonHandler); 43 79 stopButton.addEventListener(FlexEvent.BUTTON_DOWN, stopButtonHandler); 80 pauseButton.addEventListener(FlexEvent.BUTTON_DOWN, pauseButtonHandler); 81 undoButton.addEventListener(FlexEvent.BUTTON_DOWN, undoButtonHandler); 82 redoButton.addEventListener(FlexEvent.BUTTON_DOWN, redoButtonHandler); 83 fontButton.addEventListener(FlexEvent.BUTTON_DOWN, fontButtonHandler); 44 84 postPicoButton.addEventListener(FlexEvent.BUTTON_DOWN, postPicoButtonHandler); 45 85 } … … 48 88 mml_warnings.text = mml_player.getWarnings(); 49 89 stopButton.enabled = true; 90 pauseButton.enabled = true; 50 91 played = true; 51 92 } … … 54 95 playButton.enabled = true; 55 96 stopButton.enabled = false; 97 pauseButton.enabled = false; 56 98 m_timer.reset(); 57 99 } … … 59 101 private function mmlChangeHandler(e:Event):void { 60 102 played = false; 103 if (stopButton.enabled) { 104 this.stopButtonHandler(e); 105 } 106 107 var i:int; 108 var j:int; 109 if (undoCount != 0) { 110 for (i = 0; i < UNDO_MAX-undoCount ; i++) { 111 mmlUndoBuffer[i] = mmlUndoBuffer[i + undoCount]; 112 } 113 for (j = i-1; i < UNDO_MAX ; i++) { 114 mmlUndoBuffer[i] = mmlUndoBuffer[j]; 115 } 116 undoCount = 0; 117 } 118 for (i = UNDO_MAX-2; i >= 0 ; i--) { 119 mmlUndoBuffer[i + 1] = mmlUndoBuffer[i]; 120 } 121 mmlUndoBuffer[0] = mml.text; 122 changeCount++; 123 if (changeCount >= UNDO_MAX) changeCount = UNDO_MAX-1; 124 125 updateUndoRedoButton(); 126 /*TEST 127 mml_warnings.text = changeCount+"\n"; 128 for (i = 0; i < UNDO_MAX ; i++) { 129 mml_warnings.text += mmlUndoBuffer[i]+"\n"; 130 } 131 */ 132 } 133 134 private function mmlKeyDownHandler(e:KeyboardEvent):void 135 { 136 if (e.ctrlKey) 137 { 138 if (e.keyCode == 90)// Z 139 { 140 if (e.shiftKey) { 141 mmlRedo(); 142 }else { 143 mmlUndo(); 144 } 145 } 146 } 147 if (e.keyCode == 113)// F2 148 { 149 mmlUndo(); 150 } 151 if (e.keyCode == 114)// F3 152 { 153 mmlRedo(); 154 } 61 155 } 62 156 … … 65 159 mml.enabled = true; 66 160 playButton.enabled = true; 161 var i:int; 162 for (i = 0; i < UNDO_MAX ; i++) { 163 mmlUndoBuffer[i] = mml.text; 164 } 67 165 } 68 166 … … 81 179 } 82 180 181 private function mmlUndo():void { 182 if(changeCount >0){ 183 undoCount++; changeCount--; 184 mml.text = mmlUndoBuffer[undoCount]; 185 } 186 updateUndoRedoButton(); 187 played = false; 188 } 189 190 private function mmlRedo():void { 191 undoCount--; 192 if (undoCount < 0) undoCount = 0; 193 else { 194 changeCount++; 195 mml.text = mmlUndoBuffer[undoCount]; 196 } 197 updateUndoRedoButton(); 198 played = false; 199 } 200 201 private function updateUndoRedoButton():void { 202 if (undoCount == 0) { 203 redoButton.enabled = false; 204 }else { 205 redoButton.enabled = true; 206 } 207 if (changeCount == 0) { 208 undoButton.enabled = false; 209 }else { 210 undoButton.enabled = true; 211 } 212 } 213 83 214 private function playButtonHandler(evt:Event):void { 215 m_timer.reset(); 216 mml_player.stop(); 217 mml_player.play(mml.text); 218 pauseButton.label = '一時停止'; 219 } 220 221 private function pauseButtonHandler(evt:Event):void { 84 222 if (mml_player.isPlaying()) { 85 223 mml_player.pause(); 86 p layButton.label = 'ピコ再生';224 pauseButton.label = 'ピコ再開'; 87 225 m_timer.stop(); 88 226 } else { 89 if (mml_player.isPaused()) {90 m_timer.start();91 }92 227 mml_player.play(mml.text); 93 playButton.label = 'ピコ停止'; 94 } 228 m_timer.start(); 229 pauseButton.label = '一時停止'; 230 } 231 } 232 233 private function undoButtonHandler(evt:Event):void { 234 mmlUndo(); 235 } 236 237 private function redoButtonHandler(evt:Event):void { 238 mmlRedo(); 239 } 240 241 private function fontButtonHandler(evt:Event):void { 242 PopUpManager.addPopUp(setting_window, this, true); 243 PopUpManager.centerPopUp(setting_window); 244 245 setting_window.fontname.text = mml.getStyle("fontFamily"); 246 setting_window.fontsize.text = mml.getStyle("fontSize"); 247 setting_window.okButton.addEventListener(FlexEvent.BUTTON_DOWN, settingOKHandler); 248 } 249 250 private function settingOKHandler(evt:Event):void { 251 local.data.fontname = setting_window.fontname.text; 252 local.data.fontsize = setting_window.fontsize.text; 253 254 mml.setStyle("fontFamily",local.data.fontname); 255 mml.setStyle("fontSize",local.data.fontsize); 256 257 PopUpManager.removePopUp(setting_window); 95 258 } 96 259 … … 99 262 mml_player.stop(); 100 263 stopButton.enabled = false; 101 playButton.label = 'ピコ再生'; 264 pauseButton.enabled = false; 265 pauseButton.label = '一時停止'; 102 266 } 103 267 as3/gunyarapaint/trunk/picokakiko/src/picokakiko.mxml
r2745 r2857 16 16 </mx:RegExpValidator> 17 17 <mx:VBox width="100%" height="100%"> 18 <mx:Canvas> 19 <mx:Label x="28" y="7" text="名前"/> 20 <mx:TextInput id="fromTextInput" x="61" y="3" maxChars="32" fontSize="14" width="154"/> 21 <mx:CheckBox id="watchlistCheckBox" x="223" y="5" label="ウォッチリストに登録"/> 22 <mx:Label x="10" y="51" text="書き込み"/> 23 <mx:TextArea id="messageTextArea" x="61" y="31" width="557" height="62" fontSize="14"> 24 <mx:text></mx:text> 18 <mx:VDividedBox width="100%" height="100%"> 19 <mx:VBox width="100%" height="168"> 20 <mx:HBox> 21 <mx:Canvas width="5" /> 22 <mx:Canvas> 23 <mx:Label text="名前" y="4" textAlign="right" width="50"/> 24 </mx:Canvas> 25 <mx:TextInput id="fromTextInput" maxChars="32" fontSize="14" width="154"/> 26 <mx:Canvas> 27 <mx:CheckBox id="watchlistCheckBox" y="3" label="ウォッチリストに登録"/> 28 </mx:Canvas> 29 </mx:HBox> 30 <mx:HBox width="100%" height="100%"> 31 <mx:Canvas width="5" /> 32 <mx:Canvas> 33 <mx:Label text="書き込み" y="4" textAlign="right" width="50"/> 34 </mx:Canvas> 35 <mx:TextArea id="messageTextArea" width="100%" height="100%" fontSize="14"> 36 <mx:text></mx:text> 25 37 </mx:TextArea> 26 <mx:TextInput id="jasracTextInput" x="61" y="95" maxChars="285" fontSize="14" width="355"/> 27 <mx:Label x="14" y="127" text="タイトル"/> 38 <mx:Canvas width="5" /> 39 </mx:HBox> 40 <mx:HBox> 41 <mx:Canvas> 42 <mx:Label text="JASRAC" y="0" textAlign="right" width="63"/> 43 <mx:Label text="作品コード" y="10" textAlign="right" width="63"/> 44 </mx:Canvas> 45 <mx:TextInput id="jasracTextInput" maxChars="285" fontSize="14" width="355"/> 46 <mx:Canvas> 47 <mx:Label text="ハイフン無し 複数の場合にはスペース区切りで" y="4"/> 48 </mx:Canvas> 49 </mx:HBox> 50 <mx:HBox> 51 <mx:Canvas width="5" /> 52 <mx:Canvas> 53 <mx:Label text="タイトル" y="4" textAlign="right" width="50"/> 54 </mx:Canvas> 28 55 <mx:TextInput id="titleTextInput" x="61" y="123" maxChars="64" fontSize="14" width="355"/> 29 <mx:Label text="JASRAC" x="10" y="93"/> 30 <mx:Label text="作品コード" x="10" y="103"/> 31 <mx:Label text="ハイフン無し 複数の場合にはスペース区切りで" x="419" y="101"/> 32 </mx:Canvas> 56 </mx:HBox> 57 </mx:VBox> 58 <mx:HBox width="100%" height="100%"> 33 59 <mx:VDividedBox x="10" y="153" width="100%" height="100%"> 34 60 <mx:HBox width="100%" height="80%"> 35 <mx:Canvas width="5" /> 36 <mx:VBox> 37 <mx:Label text="ピコ文字"/> 38 <mx:Label text="(MML)"/> 39 </mx:VBox> 40 <mx:TextArea id="mml" width="100%" height="100%" fontSize="14" change="mmlChangeHandler(event)" fontFamily="_typewriter"/> 41 <mx:Canvas width="5" /> 61 <mx:Canvas width="0" /> 62 <mx:VBox> 63 <mx:Label text="ピコ文字" textAlign="right" width="55"/> 64 <mx:Label text="(MML)" textAlign="right" width="55"/> 65 <mx:Button id="undoButton" label="Undo" width="55"/> 66 <mx:Button id="redoButton" label="Redo" width="55"/> 67 <mx:Button id="fontButton" label="Font" width="55"/> 68 </mx:VBox> 69 <mx:TextArea id="mml" width="100%" height="100%" fontSize="14" keyDown="mmlKeyDownHandler(event)" change="mmlChangeHandler(event)" fontFamily="_typewriter"/> 70 <mx:Canvas width="5" /> 42 71 </mx:HBox> 43 72 <mx:HBox width="100%" height="20%"> 44 <mx:Canvas width="5" />45 <mx:Label text="ピコ警告"/>46 <mx:TextArea id="mml_warnings" width="100%" height="100%" editable="false"/>47 <mx:Canvas width="5" />73 <mx:Canvas width="5" /> 74 <mx:Label text="ピコ警告" textAlign="right" width="50"/> 75 <mx:TextArea id="mml_warnings" width="100%" height="100%" editable="false"/> 76 <mx:Canvas width="5" /> 48 77 </mx:HBox> 49 78 </mx:VDividedBox> 79 </mx:HBox> 80 </mx:VDividedBox> 50 81 <mx:Canvas> 51 <mx:Button id="playButton" label="ピコ再生" x="10" y="6"/> 52 <mx:Button id="stopButton" label="ピコ止め" x="85" y="6" enabled="false"/> 82 <mx:Button id="playButton" label="ピコ再生" x="10" y="6" width="69"/> 83 <mx:Button id="pauseButton" label="一時停止" x="80" y="6" width="69"/> 84 <mx:Button id="stopButton" label="ピコ停止" x="150" y="6" width="69" enabled="false"/> 53 85 <mx:HSlider 54 86 id="hSlider" minimum="0" maximum="127" value="100" 55 dataTipPlacement="top" tickColor="black" snapInterval="1"56 allowTrackClick="true" liveDragging="true"57 change="mml_player.setMasterVolume(hSlider.value);" x="203" y="5" dataTipPrecision="0"/>58 <mx:Label x=" 160" y="8" text="ピコ音量"/>87 dataTipPlacement="top" tickColor="black" snapInterval="1" 88 allowTrackClick="true" liveDragging="true" 89 change="mml_player.setMasterVolume(hSlider.value);" x="248" y="5" dataTipPrecision="0"/> 90 <mx:Label x="225" y="8" text="音量"/> 59 91 <mx:Label x="512" y="33" text="Powered by FlMML"/> 60 92 <mx:Button id="postPicoButton" x="512" y="6" label="ピコカキコする!" enabled="false" fillAlphas="[1.0, 1.0]" fillColors="[#FFFFFF, #FF9999]"/> 61 93 <flmml:FlMML id="mml_player"/> 62 <mx:Label id="bufferingLabel" x=" 371" y="8" text="バッファリング: ..." width="122"/>63 <mx:Label x="10" y="33" text="ver.20090 52901"/>94 <mx:Label id="bufferingLabel" x="411" y="8" text="バッファリング: ..." width="122"/> 95 <mx:Label x="10" y="33" text="ver.2009070101"/> 64 96 </mx:Canvas> 65 97 </mx:VBox> as3/gunyarapaint/trunk/picokakiko/src/picoplayer.mxml
r2745 r2857 155 155 <mx:HSlider 156 156 id="volumeHSlider" minimum="0" maximum="127" value="100" 157 dataTipPlacement="top" tickColor="black" snapInterval="1"158 allowTrackClick="true" liveDragging="true"159 change="changeMasterVolume(volumeHSlider.value);" x="29" y="0" width="59" dataTipPrecision="0"/>157 dataTipPlacement="top" tickColor="black" snapInterval="1" 158 allowTrackClick="true" liveDragging="true" 159 change="changeMasterVolume(volumeHSlider.value);" x="29" y="0" width="59" dataTipPrecision="0"/> 160 160 </mx:Application>

