チェンジセット 3051
- コミット日時:
- 2009/08/26 13:48:13 (3 年前)
- ファイル:
-
- as3/MultiProgressManager/branches (追加)
- as3/MultiProgressManager/tags (追加)
- as3/MultiProgressManager/trunk/doc/all-index-G.html (更新) (1 diff)
- as3/MultiProgressManager/trunk/doc/all-index-H.html (更新) (1 diff)
- as3/MultiProgressManager/trunk/doc/all-index-L.html (更新) (1 diff)
- as3/MultiProgressManager/trunk/doc/all-index-R.html (更新) (1 diff)
- as3/MultiProgressManager/trunk/doc/all-index-V.html (更新) (1 diff)
- as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/MultiProgressManager.html (更新) (14 diffs)
- as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/SiMultiProgressManager.html (更新) (8 diffs)
- as3/MultiProgressManager/trunk/sample/deploy/assets/xml/config.xml (更新) (1 diff)
- as3/MultiProgressManager/trunk/sample/deploy/main.swf (更新) (変更前)
- as3/MultiProgressManager/trunk/sample/deploy/preloader.swf (更新) (変更前)
- as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/AssetsLoadThread.as (更新) (5 diffs)
- as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/OpenContentsThread.as (更新) (1 diff)
- as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/view/MainContainer.as (更新) (1 diff)
- as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/MultiProgressManager.as (更新) (12 diffs)
- as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/SiMultiProgressManager.as (更新) (2 diffs)
- as3/MultiProgressManager/trunk/src/com/katapad/load/multiprogress/MultiProgressManager.as (更新) (11 diffs)
- as3/MultiProgressManager/trunk/src/com/katapad/load/multiprogress/SiMultiProgressManager.as (更新) (3 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/MultiProgressManager/trunk/doc/all-index-G.html
r3044 r3051 40 40 <tr> 41 41 <td width="20"></td><td> 42 getInstance42 複数のプログレスをまとめるクラスを作ります 43 43 </td> 44 44 </tr> as3/MultiProgressManager/trunk/doc/all-index-H.html
r3044 r3051 36 36 </tr> 37 37 <tr> 38 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#hasModel()">hasModel</a>(progressModel:<a href="com/katapad/load/multiprogress/AbstractProgressModel.html" onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress./class-list.html');">com.katapad.load.multiprogress:AbstractProgressModel</a>) — Method in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 39 </tr> 40 <tr> 41 <td width="20"></td><td> 42 ModelがaddProgressされてるかどうか 43 </td> 44 </tr> 45 <tr> 38 46 <td style="padding-bottom:20px" colspan="2"></td> 39 47 </tr> as3/MultiProgressManager/trunk/doc/all-index-L.html
r3044 r3051 39 39 </tr> 40 40 <tr> 41 <td width="20"></td><td> ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので </td> 41 <td width="20"></td><td> どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 42 stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 43 SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 44 それで、main側がこのイベント名に反応して表示を開始します。 45 </td> 42 46 </tr> 43 47 <tr> as3/MultiProgressManager/trunk/doc/all-index-R.html
r3044 r3051 44 44 </tr> 45 45 <tr> 46 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#removeProgress()">removeProgress</a>(progressModel:<a href="com/katapad/load/multiprogress/AbstractProgressModel.html" onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress./class-list.html');">com.katapad.load.multiprogress:AbstractProgressModel</a>, isDestroyModel) — Method in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 47 </tr> 48 <tr> 49 <td width="20"></td><td> 50 Modelのインスタンスを投げて削除します 51 </td> 52 </tr> 53 <tr> 54 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#removeProgressByIndex()">removeProgressByIndex</a>(index, isDestroyModel) — Method in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 55 </tr> 56 <tr> 57 <td width="20"></td><td> 58 通し番号からModelをremoveします 59 </td> 60 </tr> 61 <tr> 62 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#replaceNullProgress()">replaceNullProgress</a>(progressModel:<a href="com/katapad/load/multiprogress/AbstractProgressModel.html" onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress./class-list.html');">com.katapad.load.multiprogress:AbstractProgressModel</a>) — Method in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 63 </tr> 64 <tr> 65 <td width="20"></td><td> 66 エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 67 </td> 68 </tr> 69 <tr> 46 70 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#resume()">resume</a>() — Method in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 47 71 </tr> as3/MultiProgressManager/trunk/doc/all-index-V.html
r3044 r3051 36 36 </tr> 37 37 <tr> 38 <td colspan="2" class="idxrow"><a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html#VERSION">VERSION</a> — Constant static property in class com.katapad.load.multiprogress.<a onclick="javascript:loadClassListFrame('com/katapad/load/multiprogress/class-list.html');" href="com/katapad/load/multiprogress/MultiProgressManager.html">MultiProgressManager</a></td> 39 </tr> 40 <tr> 41 <td width="20"></td><td> 42 Progressイベント 43 </td> 44 </tr> 45 <tr> 38 46 <td style="padding-bottom:20px" colspan="2"></td> 39 47 </tr> as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/MultiProgressManager.html
r3044 r3051 5 5 <link rel="stylesheet" href="../../../../style.css" type="text/css" media="screen"> 6 6 <link rel="stylesheet" href="../../../../print.css" type="text/css" media="print"> 7 <meta content="MultiProgressManager,com.katapad.load.multiprogress.MultiProgressManager, percent,remainedPercentRange,totalPercentRange,addProgress,cancel,destroy,pause,resume,start" name="keywords">7 <meta content="MultiProgressManager,com.katapad.load.multiprogress.MultiProgressManager,VERSION,friction,maxSpeed,percent,remainedPercentRange,totalPercentRange,useFriction,addProgress,cancel,destroy,hasModel,pause,removeProgress,removeProgressByIndex,replaceNullProgress,resume,start" name="keywords"> 8 8 <title>com.katapad.load.multiprogress.MultiProgressManager</title> 9 9 </head> … … 20 20 </tr> 21 21 <tr class="titleTableRow2"> 22 <td align="left" id="subTitle" class="titleTableSubTitle">Class MultiProgressManager</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a> | <a href="#methodSummary">Methods</a> </td>22 <td align="left" id="subTitle" class="titleTableSubTitle">Class MultiProgressManager</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a> | <a href="#methodSummary">Methods</a> | <a href="#constantSummary">Constants</a></td> 23 23 </tr> 24 24 <tr class="titleTableRow3"> … … 28 28 <script type="text/javascript" language="javascript"> 29 29 <!-- 30 if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class MultiProgressManager"); titleBar_setSubNav( false,true,false,false,false,false,true,false,false,false,false,false,false,false);}30 if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class MultiProgressManager"); titleBar_setSubNav(true,true,false,false,false,false,true,false,false,false,false,false,false,false);} 31 31 --></script> 32 32 <div class="MainContent"> … … 100 100 </tr> 101 101 <tr class=""> 102 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#friction">friction</a> : Number<div class="summaryTableDescription"> 103 スムーズにするときのfrictionの値。 104 </div> 105 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 106 </tr> 107 <tr class=""> 108 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#maxSpeed">maxSpeed</a> : Number<div class="summaryTableDescription"> 109 useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 110 </div> 111 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 112 </tr> 113 <tr class=""> 102 114 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#percent">percent</a> : Number<div class="summaryTableDescription">[read-only] 103 115 現状のパーセントを取得します … … 114 126 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#totalPercentRange">totalPercentRange</a> : Number<div class="summaryTableDescription">[read-only] 115 127 トータルのパーセントを取得します 128 </div> 129 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 130 </tr> 131 <tr class=""> 132 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#useFriction">useFriction</a> : Boolean<div class="summaryTableDescription"> 133 パーセントの上昇ををスムーズ(線形補完)にするかどうか 116 134 </div> 117 135 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> … … 165 183 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 166 184 <div class="summarySignature"> 185 <a class="signatureLink" href="#hasModel()">hasModel</a>(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>):Boolean</div> 186 <div class="summaryTableDescription"> 187 ModelがaddProgressされてるかどうか 188 </div> 189 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 190 </tr> 191 <tr class=""> 192 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 193 <div class="summarySignature"> 167 194 <a class="signatureLink" href="#pause()">pause</a>():void</div> 168 195 <div class="summaryTableDescription"> … … 174 201 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 175 202 <div class="summarySignature"> 203 <a class="signatureLink" href="#removeProgress()">removeProgress</a>(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a> 204 </div> 205 <div class="summaryTableDescription"> 206 Modelのインスタンスを投げて削除します 207 </div> 208 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 209 </tr> 210 <tr class=""> 211 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 212 <div class="summarySignature"> 213 <a class="signatureLink" href="#removeProgressByIndex()">removeProgressByIndex</a>(index:uint, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a> 214 </div> 215 <div class="summaryTableDescription"> 216 通し番号からModelをremoveします 217 </div> 218 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 219 </tr> 220 <tr class=""> 221 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 222 <div class="summarySignature"> 223 <a class="signatureLink" href="#replaceNullProgress()">replaceNullProgress</a>(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>):<a href="../multiprogress/NullProgressModel.html">NullProgressModel</a> 224 </div> 225 <div class="summaryTableDescription"> 226 エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 227 </div> 228 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 229 </tr> 230 <tr class=""> 231 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 232 <div class="summarySignature"> 176 233 <a class="signatureLink" href="#resume()">resume</a>():void</div> 177 234 <div class="summaryTableDescription"> … … 186 243 <div class="summaryTableDescription"> 187 244 これを呼ぶとEnterFrameで監視し、progresseventが発生します。 245 </div> 246 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> 247 </tr> 248 </table> 249 </div> 250 <a name="constantSummary"></a> 251 <div class="summarySection"> 252 <div class="summaryTableTitle">Public Constants</div> 253 <table id="summaryTableConstant" class="summaryTable " cellpadding="3" cellspacing="0"> 254 <tr> 255 <th> </th><th colspan="2">Constant</th><th class="summaryTableOwnerCol">Defined by</th> 256 </tr> 257 <tr class=""> 258 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#VERSION">VERSION</a> : String = "0.1.2"<div class="summaryTableDescription">[static] 259 Progressイベント 188 260 </div> 189 261 </td><td class="summaryTableOwnerCol">MultiProgressManager</td> … … 198 270 <a name="propertyDetail"></a> 199 271 <div class="detailSectionHeader">Property detail</div> 272 <a name="friction"></a> 273 <table cellspacing="0" cellpadding="0" class="detailHeader"> 274 <tr> 275 <td class="detailHeaderName">friction</td><td class="detailHeaderType">property</td> 276 </tr> 277 </table> 278 <div class="detailBody"> 279 <code>friction:Number</code> [read-write]<p> 280 スムーズにするときのfrictionの値。 281 </p><span class="label">Implementation</span> 282 <br> 283 <code> public function get friction():Number</code> 284 <br> 285 <code> public function set friction(value:Number):void</code> 286 <br> 287 </div> 288 <a name="maxSpeed"></a> 289 <table cellspacing="0" cellpadding="0" class="detailHeader"> 290 <tr> 291 <td class="detailHeaderName">maxSpeed</td><td class="detailHeaderType">property</td><td class="detailHeaderRule"> </td> 292 </tr> 293 </table> 294 <div class="detailBody"> 295 <code>maxSpeed:Number</code> [read-write]<p> 296 useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 297 </p><span class="label">Implementation</span> 298 <br> 299 <code> public function get maxSpeed():Number</code> 300 <br> 301 <code> public function set maxSpeed(value:Number):void</code> 302 <br> 303 </div> 200 304 <a name="percent"></a> 201 305 <table cellspacing="0" cellpadding="0" class="detailHeader"> 202 306 <tr> 203 <td class="detailHeaderName">percent</td><td class="detailHeaderType">property</td> 307 <td class="detailHeaderName">percent</td><td class="detailHeaderType">property</td><td class="detailHeaderRule"> </td> 204 308 </tr> 205 309 </table> … … 240 344 <br> 241 345 </div> 346 <a name="useFriction"></a> 347 <table cellspacing="0" cellpadding="0" class="detailHeader"> 348 <tr> 349 <td class="detailHeaderName">useFriction</td><td class="detailHeaderType">property</td><td class="detailHeaderRule"> </td> 350 </tr> 351 </table> 352 <div class="detailBody"> 353 <code>useFriction:Boolean</code> [read-write]<p> 354 パーセントの上昇ををスムーズ(線形補完)にするかどうか 355 </p><span class="label">Implementation</span> 356 <br> 357 <code> public function get useFriction():Boolean</code> 358 <br> 359 <code> public function set useFriction(value:Boolean):void</code> 360 <br> 361 </div> 242 362 <a name="constructorDetail"></a> 243 363 <div class="detailSectionHeader">Constructor detail</div> … … 301 421 <table border="0" cellspacing="0" cellpadding="0"> 302 422 <tr> 303 <td width="20"></td><td><code>uint</code> — 追加されたアイテムの 番号(Arrayのlength - 1)を返します。特に使いません。423 <td width="20"></td><td><code>uint</code> — 追加されたアイテムの通し番号を返します。 304 424 </td> 305 425 </tr> … … 326 446 破棄します 327 447 </p></div> 448 <a name="hasModel()"></a> 449 <table cellspacing="0" cellpadding="0" class="detailHeader"> 450 <tr> 451 <td class="detailHeaderName">hasModel</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule"> </td> 452 </tr> 453 </table> 454 <div class="detailBody"> 455 <code>public function hasModel(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>):Boolean</code><p> 456 ModelがaddProgressされてるかどうか 457 </p><span class="label">Parameters</span> 458 <table border="0" cellspacing="0" cellpadding="0"> 459 <tr> 460 <td width="20px"></td><td><code><span class="label">progressModel</span>:<a href="AbstractProgressModel.html">AbstractProgressModel</a></code></td> 461 </tr> 462 </table> 463 <p></p> 464 <span class="label">Returns</span> 465 <table border="0" cellspacing="0" cellpadding="0"> 466 <tr> 467 <td width="20"></td><td><code>Boolean</code> — ModelがaddProgressされてるかどうか 468 </td> 469 </tr> 470 </table> 471 </div> 328 472 <a name="pause()"></a> 329 473 <table cellspacing="0" cellpadding="0" class="detailHeader"> … … 336 480 パーセントの監視を中断します 337 481 </p></div> 482 <a name="removeProgress()"></a> 483 <table cellspacing="0" cellpadding="0" class="detailHeader"> 484 <tr> 485 <td class="detailHeaderName">removeProgress</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule"> </td> 486 </tr> 487 </table> 488 <div class="detailBody"> 489 <code>public function removeProgress(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a></code><p> 490 Modelのインスタンスを投げて削除します 491 </p><span class="label">Parameters</span> 492 <table border="0" cellspacing="0" cellpadding="0"> 493 <tr> 494 <td width="20px"></td><td><code><span class="label">progressModel</span>:<a href="AbstractProgressModel.html">AbstractProgressModel</a></code> — 削除したいmodel 495 </td> 496 </tr> 497 <tr> 498 <td class="paramSpacer"> </td> 499 </tr> 500 <tr> 501 <td width="20px"></td><td><code><span class="label">isDestroyModel</span>:Boolean</code> (default = <code>true</code>)<code></code> — ついでにmodelもdestroyするかどうか 502 </td> 503 </tr> 504 </table> 505 <p></p> 506 <span class="label">Returns</span> 507 <table border="0" cellspacing="0" cellpadding="0"> 508 <tr> 509 <td width="20"></td><td><code><a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a></code> — 510 AbstractProgressModel 511 512 513 </td> 514 </tr> 515 </table> 516 </div> 517 <a name="removeProgressByIndex()"></a> 518 <table cellspacing="0" cellpadding="0" class="detailHeader"> 519 <tr> 520 <td class="detailHeaderName">removeProgressByIndex</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule"> </td> 521 </tr> 522 </table> 523 <div class="detailBody"> 524 <code>public function removeProgressByIndex(index:uint, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a></code><p> 525 通し番号からModelをremoveします 526 </p><span class="label">Parameters</span> 527 <table border="0" cellspacing="0" cellpadding="0"> 528 <tr> 529 <td width="20px"></td><td><code><span class="label">index</span>:uint</code> — addProgressしたときに 530 </td> 531 </tr> 532 <tr> 533 <td class="paramSpacer"> </td> 534 </tr> 535 <tr> 536 <td width="20px"></td><td><code><span class="label">isDestroyModel</span>:Boolean</code> (default = <code>true</code>)<code></code> — ついでにmodelもdestroyするかどうか 537 </td> 538 </tr> 539 </table> 540 <p></p> 541 <span class="label">Returns</span> 542 <table border="0" cellspacing="0" cellpadding="0"> 543 <tr> 544 <td width="20"></td><td><code><a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a></code> — 545 AbstractProgressModel 546 547 548 </td> 549 </tr> 550 </table> 551 </div> 552 <a name="replaceNullProgress()"></a> 553 <table cellspacing="0" cellpadding="0" class="detailHeader"> 554 <tr> 555 <td class="detailHeaderName">replaceNullProgress</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule"> </td> 556 </tr> 557 </table> 558 <div class="detailBody"> 559 <code>public function replaceNullProgress(progressModel:<a href="AbstractProgressModel.html">AbstractProgressModel</a>):<a href="../multiprogress/NullProgressModel.html">NullProgressModel</a></code><p> 560 エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 561 </p><span class="label">Parameters</span> 562 <table border="0" cellspacing="0" cellpadding="0"> 563 <tr> 564 <td width="20px"></td><td><code><span class="label">progressModel</span>:<a href="AbstractProgressModel.html">AbstractProgressModel</a></code></td> 565 </tr> 566 </table> 567 <p></p> 568 <span class="label">Returns</span> 569 <table border="0" cellspacing="0" cellpadding="0"> 570 <tr> 571 <td width="20"></td><td><code><a href="../multiprogress/NullProgressModel.html">NullProgressModel</a></code></td> 572 </tr> 573 </table> 574 </div> 338 575 <a name="resume()"></a> 339 576 <table cellspacing="0" cellpadding="0" class="detailHeader"> … … 356 593 これを呼ぶとEnterFrameで監視し、progresseventが発生します。 357 594 </p></div> 595 <a name="constantDetail"></a> 596 <div class="detailSectionHeader">Constant detail</div> 597 <a name="VERSION"></a> 598 <table cellspacing="0" cellpadding="0" class="detailHeader"> 599 <tr> 600 <td class="detailHeaderName">VERSION</td><td class="detailHeaderType">constant</td> 601 </tr> 602 </table> 603 <div class="detailBody"> 604 <code>public static const VERSION:String = "0.1.2"</code><p> 605 Progressイベント 606 </p></div> 358 607 <br> 359 608 <br> as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/SiMultiProgressManager.html
r3044 r3051 64 64 </tr> 65 65 <tr class="hideInheritedProperty"> 66 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#friction">friction</a> : Number<div class="summaryTableDescription"> 67 スムーズにするときのfrictionの値。 68 </div> 69 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 70 </tr> 71 <tr class="hideInheritedProperty"> 72 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#maxSpeed">maxSpeed</a> : Number<div class="summaryTableDescription"> 73 useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 74 </div> 75 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 76 </tr> 77 <tr class="hideInheritedProperty"> 66 78 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#percent">percent</a> : Number<div class="summaryTableDescription"> 67 79 現状のパーセントを取得します … … 78 90 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#totalPercentRange">totalPercentRange</a> : Number<div class="summaryTableDescription"> 79 91 トータルのパーセントを取得します 92 </div> 93 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 94 </tr> 95 <tr class="hideInheritedProperty"> 96 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#useFriction">useFriction</a> : Boolean<div class="summaryTableDescription"> 97 パーセントの上昇ををスムーズ(線形補完)にするかどうか 80 98 </div> 81 99 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> … … 137 155 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"> 138 156 <div class="summarySignature"> 139 <a class="signatureLink" href="#getInstance()">getInstance</a>(enterframe:DisplayObject = null, useFriction:Boolean = false, friction:Number = 0.3, maxSpeed:Number):<a href="../multiprogress/SiMultiProgressManager.html">SiMultiProgressManager</a>157 <a class="signatureLink" href="#getInstance()">getInstance</a>(enterframe:DisplayObject = null, useFriction:Boolean = true, friction:Number = 0.3, maxSpeed:Number):<a href="../multiprogress/SiMultiProgressManager.html">SiMultiProgressManager</a> 140 158 </div> 141 159 <div class="summaryTableDescription">[static] 142 getInstance160 複数のプログレスをまとめるクラスを作ります 143 161 </div> 144 162 </td><td class="summaryTableOwnerCol">SiMultiProgressManager</td> … … 147 165 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 148 166 <div class="summarySignature"> 167 <a class="signatureLink" href="MultiProgressManager.html#hasModel()">hasModel</a>(progressModel:<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a>):Boolean</div> 168 <div class="summaryTableDescription"> 169 ModelがaddProgressされてるかどうか 170 </div> 171 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 172 </tr> 173 <tr class="hideInheritedMethod"> 174 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 175 <div class="summarySignature"> 149 176 <a class="signatureLink" href="MultiProgressManager.html#pause()">pause</a>():void</div> 150 177 <div class="summaryTableDescription"> 151 178 パーセントの監視を中断します 179 </div> 180 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 181 </tr> 182 <tr class="hideInheritedMethod"> 183 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 184 <div class="summarySignature"> 185 <a class="signatureLink" href="MultiProgressManager.html#removeProgress()">removeProgress</a>(progressModel:<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a>, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a> 186 </div> 187 <div class="summaryTableDescription"> 188 Modelのインスタンスを投げて削除します 189 </div> 190 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 191 </tr> 192 <tr class="hideInheritedMethod"> 193 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 194 <div class="summarySignature"> 195 <a class="signatureLink" href="MultiProgressManager.html#removeProgressByIndex()">removeProgressByIndex</a>(index:uint, isDestroyModel:Boolean = true):<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a> 196 </div> 197 <div class="summaryTableDescription"> 198 通し番号からModelをremoveします 199 </div> 200 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 201 </tr> 202 <tr class="hideInheritedMethod"> 203 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 204 <div class="summarySignature"> 205 <a class="signatureLink" href="MultiProgressManager.html#replaceNullProgress()">replaceNullProgress</a>(progressModel:<a href="../multiprogress/AbstractProgressModel.html">AbstractProgressModel</a>):<a href="../multiprogress/NullProgressModel.html">NullProgressModel</a> 206 </div> 207 <div class="summaryTableDescription"> 208 エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 152 209 </div> 153 210 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> … … 176 233 <div class="summarySection"> 177 234 <div class="summaryTableTitle">Public Constants</div> 235 <div class="showHideLinks"> 236 <div class="hideInheritedConstant" id="hideInheritedConstant"> 237 <a onclick="javascript:setInheritedVisible(false,'Constant');" href="#constantSummary" class="showHideLink"><img src="../../../../images/expanded.gif" class="showHideLinkImage"> Hide Inherited Public Constants</a> 238 </div> 239 <div class="showInheritedConstant" id="showInheritedConstant"> 240 <a onclick="javascript:setInheritedVisible(true,'Constant');" href="#constantSummary" class="showHideLink"><img src="../../../../images/collapsed.gif" class="showHideLinkImage"> Show Inherited Public Constants</a> 241 </div> 242 </div> 178 243 <table id="summaryTableConstant" class="summaryTable " cellpadding="3" cellspacing="0"> 179 244 <tr> … … 181 246 </tr> 182 247 <tr class=""> 183 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#LOADING_VIEW_EVENT_COMPLETE">LOADING_VIEW_EVENT_COMPLETE</a> : String = "loadingViewEventComplete"<div class="summaryTableDescription">[static] ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので </div> 248 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"> </td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#LOADING_VIEW_EVENT_COMPLETE">LOADING_VIEW_EVENT_COMPLETE</a> : String = "loadingViewEventComplete"<div class="summaryTableDescription">[static] どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 249 stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 250 SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 251 それで、main側がこのイベント名に反応して表示を開始します。 252 </div> 184 253 </td><td class="summaryTableOwnerCol">SiMultiProgressManager</td> 254 </tr> 255 <tr class="hideInheritedConstant"> 256 <td class="summaryTablePaddingCol"> </td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="MultiProgressManager.html#VERSION">VERSION</a> : String = "0.1.2"<div class="summaryTableDescription">[static] 257 Progressイベント 258 </div> 259 </td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 185 260 </tr> 186 261 </table> … … 242 317 </table> 243 318 <div class="detailBody"> 244 <code>public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = false, friction:Number = 0.3, maxSpeed:Number):<a href="../multiprogress/SiMultiProgressManager.html">SiMultiProgressManager</a></code><p>245 getInstance319 <code>public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = true, friction:Number = 0.3, maxSpeed:Number):<a href="../multiprogress/SiMultiProgressManager.html">SiMultiProgressManager</a></code><p> 320 複数のプログレスをまとめるクラスを作ります 246 321 </p><span class="label">Parameters</span> 247 322 <table border="0" cellspacing="0" cellpadding="0"> 248 323 <tr> 249 <td width="20px"></td><td><code><span class="label">enterframe</span>:DisplayObject</code> (default = <code>null</code>)<code></code></td> 250 </tr> 251 <tr> 252 <td class="paramSpacer"> </td> 253 </tr> 254 <tr> 255 <td width="20px"></td><td><code><span class="label">useFriction</span>:Boolean</code> (default = <code>false</code>)<code></code></td> 256 </tr> 257 <tr> 258 <td class="paramSpacer"> </td> 259 </tr> 260 <tr> 261 <td width="20px"></td><td><code><span class="label">friction</span>:Number</code> (default = <code>0.3</code>)<code></code></td> 262 </tr> 263 <tr> 264 <td class="paramSpacer"> </td> 265 </tr> 266 <tr> 267 <td width="20px"></td><td><code><span class="label">maxSpeed</span>:Number</code></td> 324 <td width="20px"></td><td><code><span class="label">enterframe</span>:DisplayObject</code> (default = <code>null</code>)<code></code> — EnterFrame用DisplayObject。通常はstageの参照を渡します。 325 </td> 326 </tr> 327 <tr> 328 <td class="paramSpacer"> </td> 329 </tr> 330 <tr> 331 <td width="20px"></td><td><code><span class="label">useFriction</span>:Boolean</code> (default = <code>true</code>)<code></code> — パーセントをスムーズにするかどうか 332 </td> 333 </tr> 334 <tr> 335 <td class="paramSpacer"> </td> 336 </tr> 337 <tr> 338 <td width="20px"></td><td><code><span class="label">friction</span>:Number</code> (default = <code>0.3</code>)<code></code> — スムーズにするときのfrictionの値。 339 </td> 340 </tr> 341 <tr> 342 <td class="paramSpacer"> </td> 343 </tr> 344 <tr> 345 <td width="20px"></td><td><code><span class="label">maxSpeed</span>:Number</code> — useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 346 </td> 268 347 </tr> 269 348 </table> … … 285 364 </table> 286 365 <div class="detailBody"> 287 <code>public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete"</code><p> ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので </p></div> 366 <code>public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete"</code><p> どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 367 stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 368 SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 369 それで、main側がこのイベント名に反応して表示を開始します。 370 </p></div> 288 371 <br> 289 372 <br> as3/MultiProgressManager/trunk/sample/deploy/assets/xml/config.xml
r3043 r3051 5 5 <img src="assets/img/l_2.jpg" /> 6 6 <img src="assets/img/l_3.jpg" /> 7 <img src="assets/img/ l_4.jpg" />7 <img src="assets/img/_4.jpg" /> 8 8 </imgs> 9 9 </data> as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/AssetsLoadThread.as
r3043 r3051 5 5 import com.katapad.load.multiprogress.AbstractProgressModel; 6 6 import com.katapad.load.multiprogress.BulkLoaderProgressModel; 7 import flash.display.Sprite; 7 import com.katapad.load.multiprogress.NullProgressModel; 8 import flash.display.Bitmap; 9 import flash.events.ErrorEvent; 8 10 import flash.events.Event; 9 11 import multiprogresssample.model.Context; … … 27 29 private var _context:Context; 28 30 private var _bulkLoader:BulkLoader; 31 private var _bulkModel:AbstractProgressModel; 29 32 30 33 /** … … 61 64 _bulkLoader = null; 62 65 _context = null; 66 _bulkModel = null; 63 67 trace("[AssetsLoadThread finalize]"); 64 68 } … … 99 103 100 104 //BulkLoader用のプログレスモデル 101 var model:AbstractProgressModel = new BulkLoaderProgressModel(_bulkLoader, 0.4); 102 _context.progressManager.addProgress(model); 103 104 //bulkloaderのロード開始 105 _bulkLoader.start(); 106 105 _bulkModel = new BulkLoaderProgressModel(_bulkLoader, 0.3); 106 _context.progressManager.addProgress(_bulkModel); 107 107 108 108 //BulkLoaderのcompleteイベントを待ちます 109 109 join(); 110 110 event(_bulkLoader, BulkProgressEvent.COMPLETE, bulkLoadComplete); 111 event(_bulkLoader, ErrorEvent.ERROR, errorHandler); 112 113 //bulkloaderのロード開始 114 _bulkLoader.start(); 115 } 116 117 /** 118 * エラーが出たらなんとかする 119 * @param e 120 */ 121 private function errorHandler(e:ErrorEvent):void 122 { 123 trace("[AssetsLoadThread errorHandler]", e); 124 //bulkLoaderのすばらしいところ能力を使うとIO_ERRORがでても楽に対処できます 125 //config.xmlにある画像へのパスをわざと間違えるとこの処理が行われます。 126 //removeFailedAndContinueLoad(); 127 128 129 //無理やりNullProgressに置き換えてしまうやりかた。ここではサンプルなのでBulkLoaderを完全に無視した格好になります。 130 var model:NullProgressModel = _context.progressManager.replaceNullProgress(_bulkModel); 131 //無理やり置き換えたらパーセントをまわしておく 132 model.percent = 1.0; 133 } 134 135 private function removeFailedAndContinueLoad():void 136 { 137 _bulkLoader.removeFailedItems(); 138 if (_bulkLoader.isRunning) 139 { 140 join(); 141 event(_bulkLoader, BulkProgressEvent.COMPLETE, bulkLoadComplete); 142 } 143 else 144 { 145 bulkLoadComplete(null); 146 } 111 147 } 112 148 … … 121 157 { 122 158 //BulkLoaderからロードしたBitmapを抜き出します 123 result[i] = _context.bulkLoader.getBitmap(_context.imgSrcList[i], true); 159 var bm:Bitmap = _context.bulkLoader.getBitmap(_context.imgSrcList[i], true); 160 if (bm) 161 result.push(bm); 124 162 } 125 163 as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/OpenContentsThread.as
r3043 r3051 90 90 { 91 91 //残り分を回します 92 trace( "_context.progressManager.remainedPercentRange : " + _context.progressManager.remainedPercentRange ); 92 93 var model:NullProgressModel = new NullProgressModel(_context.progressManager.remainedPercentRange); 93 94 _context.progressManager.addProgress(model); as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/view/MainContainer.as
r3043 r3051 53 53 public function build(bitmapList:Array):void 54 54 { 55 if (!bitmapList) 56 return; 55 57 for (var i:int = 0, n:int = bitmapList.length; i < n; ++i) 56 58 { as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/MultiProgressManager.as
r3043 r3051 25 25 { 26 26 import flash.display.DisplayObject; 27 import flash.display.S prite;27 import flash.display.Shape; 28 28 import flash.display.Stage; 29 29 import flash.events.Event; 30 30 import flash.events.EventDispatcher; 31 import flash.utils.Dictionary; 31 32 32 33 /** … … 74 75 * 75 76 * @author katapad 76 * @version 0.1. 177 * @version 0.1.2 77 78 * @since 2009/02/06 18:39 78 79 */ … … 100 101 // static var/const 101 102 //---------------------------------- 102 103 /** 104 * 2009/08/26 13:27 105 */ 106 public static const VERSION:String = "0.1.2"; 103 107 //---------------------------------- 104 108 // instance var 105 109 //---------------------------------- 106 private var _progressModel List:/*AbstractProgressModel*/Array;110 private var _progressModelDict:/*AbstractProgressModel*/Dictionary; 107 111 private var _totalPercentRange:Number; 108 112 … … 114 118 private var _friction:Number; 115 119 private var _useFriction:Boolean; 120 121 private var _additionIndex:uint; 122 123 116 124 117 125 /** … … 128 136 129 137 /** 130 * 138 * 初期化 131 139 * @param enterframe 132 140 * @param useFriction … … 136 144 private function init(enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number):void 137 145 { 138 _enterframe = enterframe || new S prite();146 _enterframe = enterframe || new Shape(); 139 147 _useFriction = useFriction; 140 148 _friction = friction; 141 149 _maxSpeed = maxSpeed; 142 _progressModel List = [];150 _progressModelDict = new Dictionary(false); 143 151 _percent = _frictionPercent = _totalPercentRange = 0; 152 _additionIndex = 0; 144 153 } 145 154 … … 158 167 * progressModelを追加します。 159 168 * @param progressModel 160 * @return 追加されたアイテムの 番号(Arrayのlength - 1)を返します。特に使いません。169 * @return 追加されたアイテムの通し番号を返します。 161 170 */ 162 171 public function addProgress(progressModel:AbstractProgressModel):uint 163 172 { 173 if (_totalPercentRange + progressModel.pecentRange > 1) 174 throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 164 175 _totalPercentRange += progressModel.pecentRange; 165 if (_totalPercentRange > 1) 166 throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 167 _progressModelList.push(progressModel); 168 return _progressModelList.length - 1; 176 _progressModelDict[_additionIndex] = progressModel; 177 _additionIndex++; 178 return _additionIndex - 1; 179 } 180 181 /** 182 * ModelがaddProgressされてるかどうか 183 * @param progressModel 184 * @return ModelがaddProgressされてるかどうか 185 */ 186 public function hasModel(progressModel:AbstractProgressModel):Boolean 187 { 188 var result:Boolean = false; 189 for (var key:String in _progressModelDict) 190 { 191 if (_progressModelDict[key] == progressModel) 192 { 193 result = true; 194 break; 195 } 196 } 197 return result; 198 } 199 200 /** 201 * Modelのインスタンスを投げて削除します 202 * @param progressModel 削除したいmodel 203 * @param isDestroyModel ついでにmodelもdestroyするかどうか 204 * @return AbstractProgressModel 205 */ 206 public function removeProgress(progressModel:AbstractProgressModel, isDestroyModel:Boolean = true):AbstractProgressModel 207 { 208 var hasModel:Boolean = false; 209 for (var key:String in _progressModelDict) 210 { 211 if (_progressModelDict[key] == progressModel) 212 { 213 hasModel = true; 214 break; 215 } 216 } 217 if (!hasModel) 218 throw new Error("指定されたAbstractProgressModelがありません。"); 219 220 delete _progressModelDict[key]; 221 afterRemoveProgressModelProc(progressModel, isDestroyModel); 222 return progressModel; 223 } 224 225 /** 226 * 通し番号からModelをremoveします 227 * @param index addProgressしたときに 228 * @param isDestroyModel ついでにmodelもdestroyするかどうか 229 * @return AbstractProgressModel 230 */ 231 public function removeProgressByIndex(index:uint, isDestroyModel:Boolean = true):AbstractProgressModel 232 { 233 if (!_progressModelDict[index]) 234 throw new Error("指定されたindexにAbtractProgressModelがありません。"); 235 236 var progressModel:AbstractProgressModel = _progressModelDict[index]; 237 delete _progressModelDict[index]; 238 afterRemoveProgressModelProc(progressModel, isDestroyModel); 239 return progressModel; 240 } 241 242 /** 243 * エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 244 * @param progressModel 245 * @return 246 */ 247 public function replaceNullProgress(progressModel:AbstractProgressModel):NullProgressModel 248 { 249 var range:Number = progressModel.pecentRange; 250 removeProgress(progressModel); 251 var result:NullProgressModel = new NullProgressModel(range); 252 addProgress(result); 253 return result; 169 254 } 170 255 … … 192 277 updateOn(); 193 278 } 194 195 279 196 280 /** … … 209 293 public function destroy():void 210 294 { 211 if (!_progressModel List)295 if (!_progressModelDict) 212 296 return; 213 for (var i:int = 0, n:int = _progressModelList.length; i < n; ++i) 214 { 215 var model:AbstractProgressModel = _progressModelList[i]; 297 for each(var model:AbstractProgressModel in _progressModelDict) 298 { 216 299 model.destroy(); 217 300 } 218 _progressModel List = null;301 _progressModelDict = null; 219 302 } 220 303 //-------------------------------------------------------------------------- … … 268 351 } 269 352 353 private function afterRemoveProgressModelProc(progressModel:AbstractProgressModel, isDestroyModel:Boolean):void 354 { 355 _totalPercentRange -= progressModel.pecentRange; 356 if (isDestroyModel) 357 progressModel.destroy(); 358 } 359 270 360 //---------------------------------- 271 361 // calc … … 274 364 { 275 365 var result:Number = 0.0; 276 for each(var model:AbstractProgressModel in _progressModel List)366 for each(var model:AbstractProgressModel in _progressModelDict) 277 367 { 278 368 result += model.revisedPercent; … … 323 413 } 324 414 415 /** 416 * パーセントの上昇ををスムーズ(線形補完)にするかどうか 417 */ 418 public function get useFriction():Boolean { return _useFriction; } 419 420 public function set useFriction(value:Boolean):void 421 { 422 _useFriction = value; 423 } 424 425 /** 426 * スムーズにするときのfrictionの値。 427 */ 428 public function get friction():Number { return _friction; } 429 430 public function set friction(value:Number):void 431 { 432 _friction = value; 433 } 434 435 /** 436 * useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 437 */ 438 public function get maxSpeed():Number { return _maxSpeed; } 439 440 public function set maxSpeed(value:Number):void 441 { 442 _maxSpeed = value; 443 } 444 325 445 } 326 446 as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/SiMultiProgressManager.as
r3046 r3051 36 36 // static var/const 37 37 //---------------------------------- 38 /** ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので */ 38 /** どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 39 * stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 40 * SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 41 * それで、main側がこのイベント名に反応して表示を開始します。 42 */ 39 43 public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete" 40 44 … … 45 49 private static var _instance:SiMultiProgressManager; 46 50 /** 47 * getInstance 51 * 複数のプログレスをまとめるクラスを作ります 52 * @param enterframe EnterFrame用DisplayObject。通常はstageの参照を渡します。 53 * @param useFriction パーセントをスムーズにするかどうか 54 * @param friction スムーズにするときのfrictionの値。 55 * @param maxSpeed useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 48 56 */ 49 57 public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = true, friction:Number = 0.3, maxSpeed:Number = NaN):SiMultiProgressManager as3/MultiProgressManager/trunk/src/com/katapad/load/multiprogress/MultiProgressManager.as
r3046 r3051 25 25 { 26 26 import flash.display.DisplayObject; 27 import flash.display.S prite;27 import flash.display.Shape; 28 28 import flash.display.Stage; 29 29 import flash.events.Event; 30 30 import flash.events.EventDispatcher; 31 import flash.utils.Dictionary; 31 32 32 33 /** … … 74 75 * 75 76 * @author katapad 76 * @version 0.1. 177 * @version 0.1.2 77 78 * @since 2009/02/06 18:39 78 79 */ … … 100 101 // static var/const 101 102 //---------------------------------- 102 103 /** 104 * 2009/08/26 13:27 105 */ 106 public static const VERSION:String = "0.1.2"; 103 107 //---------------------------------- 104 108 // instance var 105 109 //---------------------------------- 106 private var _progressModel List:/*AbstractProgressModel*/Array;110 private var _progressModelDict:/*AbstractProgressModel*/Dictionary; 107 111 private var _totalPercentRange:Number; 108 112 … … 115 119 private var _useFriction:Boolean; 116 120 121 private var _additionIndex:uint; 122 123 124 117 125 /** 118 126 * 複数のプログレスをまとめるクラスを作ります 119 127 * @param enterframe EnterFrame用DisplayObject。通常はstageの参照を渡します。 120 * @param useFriction パーセント の上昇ををスムーズ(線形補完)にするかどうか128 * @param useFriction パーセントをスムーズにするかどうか 121 129 * @param friction スムーズにするときのfrictionの値。 122 130 * @param maxSpeed useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます … … 128 136 129 137 /** 130 * 138 * 初期化 131 139 * @param enterframe 132 140 * @param useFriction … … 136 144 private function init(enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number):void 137 145 { 138 _enterframe = enterframe || new S prite();146 _enterframe = enterframe || new Shape(); 139 147 _useFriction = useFriction; 140 148 _friction = friction; 141 149 _maxSpeed = maxSpeed; 142 _progressModel List = [];150 _progressModelDict = new Dictionary(false); 143 151 _percent = _frictionPercent = _totalPercentRange = 0; 152 _additionIndex = 0; 144 153 } 145 154 … … 158 167 * progressModelを追加します。 159 168 * @param progressModel 160 * @return 追加されたアイテムの 番号(Arrayのlength - 1)を返します。特に使いません。169 * @return 追加されたアイテムの通し番号を返します。 161 170 */ 162 171 public function addProgress(progressModel:AbstractProgressModel):uint 163 172 { 173 if (_totalPercentRange + progressModel.pecentRange > 1) 174 throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 164 175 _totalPercentRange += progressModel.pecentRange; 165 if (_totalPercentRange > 1) 166 throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 167 _progressModelList.push(progressModel); 168 return _progressModelList.length - 1; 176 _progressModelDict[_additionIndex] = progressModel; 177 _additionIndex++; 178 return _additionIndex - 1; 179 } 180 181 /** 182 * ModelがaddProgressされてるかどうか 183 * @param progressModel 184 * @return ModelがaddProgressされてるかどうか 185 */ 186 public function hasModel(progressModel:AbstractProgressModel):Boolean 187 { 188 var result:Boolean = false; 189 for (var key:String in _progressModelDict) 190 { 191 if (_progressModelDict[key] == progressModel) 192 { 193 result = true; 194 break; 195 } 196 } 197 return result; 198 } 199 200 /** 201 * Modelのインスタンスを投げて削除します 202 * @param progressModel 削除したいmodel 203 * @param isDestroyModel ついでにmodelもdestroyするかどうか 204 * @return AbstractProgressModel 205 */ 206 public function removeProgress(progressModel:AbstractProgressModel, isDestroyModel:Boolean = true):AbstractProgressModel 207 { 208 var hasModel:Boolean = false; 209 for (var key:String in _progressModelDict) 210 { 211 if (_progressModelDict[key] == progressModel) 212 { 213 hasModel = true; 214 break; 215 } 216 } 217 if (!hasModel) 218 throw new Error("指定されたAbstractProgressModelがありません。"); 219 220 delete _progressModelDict[key]; 221 afterRemoveProgressModelProc(progressModel, isDestroyModel); 222 return progressModel; 223 } 224 225 /** 226 * 通し番号からModelをremoveします 227 * @param index addProgressしたときに 228 * @param isDestroyModel ついでにmodelもdestroyするかどうか 229 * @return AbstractProgressModel 230 */ 231 public function removeProgressByIndex(index:uint, isDestroyModel:Boolean = true):AbstractProgressModel 232 { 233 if (!_progressModelDict[index]) 234 throw new Error("指定されたindexにAbtractProgressModelがありません。"); 235 236 var progressModel:AbstractProgressModel = _progressModelDict[index]; 237 delete _progressModelDict[index]; 238 afterRemoveProgressModelProc(progressModel, isDestroyModel); 239 return progressModel; 240 } 241 242 /** 243 * エラーが起きたときなどに、modelをNullProgressModelに入れ替えます 244 * @param progressModel 245 * @return 246 */ 247 public function replaceNullProgress(progressModel:AbstractProgressModel):NullProgressModel 248 { 249 var range:Number = progressModel.pecentRange; 250 removeProgress(progressModel); 251 var result:NullProgressModel = new NullProgressModel(range); 252 addProgress(result); 253 return result; 169 254 } 170 255 … … 192 277 updateOn(); 193 278 } 194 195 279 196 280 /** … … 209 293 public function destroy():void 210 294 { 211 if (!_progressModel List)295 if (!_progressModelDict) 212 296 return; 213 for (var i:int = 0, n:int = _progressModelList.length; i < n; ++i) 214 { 215 var model:AbstractProgressModel = _progressModelList[i]; 297 for each(var model:AbstractProgressModel in _progressModelDict) 298 { 216 299 model.destroy(); 217 300 } 218 _progressModel List = null;301 _progressModelDict = null; 219 302 } 220 303 //-------------------------------------------------------------------------- … … 268 351 } 269 352 353 private function afterRemoveProgressModelProc(progressModel:AbstractProgressModel, isDestroyModel:Boolean):void 354 { 355 _totalPercentRange -= progressModel.pecentRange; 356 if (isDestroyModel) 357 progressModel.destroy(); 358 } 359 270 360 //---------------------------------- 271 361 // calc … … 274 364 { 275 365 var result:Number = 0.0; 276 for each(var model:AbstractProgressModel in _progressModel List)366 for each(var model:AbstractProgressModel in _progressModelDict) 277 367 { 278 368 result += model.revisedPercent; as3/MultiProgressManager/trunk/src/com/katapad/load/multiprogress/SiMultiProgressManager.as
r3043 r3051 36 36 // static var/const 37 37 //---------------------------------- 38 /** ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので */ 38 /** どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 39 * stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 40 * SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 41 * それで、main側がこのイベント名に反応して表示を開始します。 42 */ 39 43 public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete" 40 44 … … 45 49 private static var _instance:SiMultiProgressManager; 46 50 /** 47 * getInstance 51 * 複数のプログレスをまとめるクラスを作ります 52 * @param enterframe EnterFrame用DisplayObject。通常はstageの参照を渡します。 53 * @param useFriction パーセントをスムーズにするかどうか 54 * @param friction スムーズにするときのfrictionの値。 55 * @param maxSpeed useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 48 56 */ 49 public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = false, friction:Number = 0.3, maxSpeed:Number = NaN):SiMultiProgressManager57 public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = true, friction:Number = 0.3, maxSpeed:Number = NaN):SiMultiProgressManager 50 58 { 51 59 if (_instance == null) … … 59 67 public function SiMultiProgressManager(enforcer:SingletonEnforcer, enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number) 60 68 { 61 super( );69 super(enterframe, useFriction, friction, maxSpeed); 62 70 } 63 71

