チェンジセット 3051

差分発生行の前後
無視リスト:
コミット日時:
2009/08/26 13:48:13 (3 年前)
コミッタ:
katapad
ログメッセージ:

v0.1.2
SiMultiProgressManager?.as がsuperをちゃんと呼んでいなかったのを修正
MultiProgressManager?.as にremoveProgressを追加

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/MultiProgressManager/trunk/doc/all-index-G.html

    r3044 r3051  
    4040<tr> 
    4141<td width="20"></td><td> 
    42    getInstance 
     42   複数のプログレスをまとめるクラスを作ります 
    4343   </td> 
    4444</tr> 
  • as3/MultiProgressManager/trunk/doc/all-index-H.html

    r3044 r3051  
    3636</tr> 
    3737<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>) &mdash; 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> 
    3846<td style="padding-bottom:20px" colspan="2"></td> 
    3947</tr> 
  • as3/MultiProgressManager/trunk/doc/all-index-L.html

    r3044 r3051  
    3939</tr> 
    4040<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> 
    4246</tr> 
    4347<tr> 
  • as3/MultiProgressManager/trunk/doc/all-index-R.html

    r3044 r3051  
    4444</tr> 
    4545<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) &mdash; 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) &mdash; 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>) &mdash; 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> 
    4670<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>() &mdash; 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> 
    4771</tr> 
  • as3/MultiProgressManager/trunk/doc/all-index-V.html

    r3044 r3051  
    3636</tr> 
    3737<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> &mdash; 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> 
    3846<td style="padding-bottom:20px" colspan="2"></td> 
    3947</tr> 
  • as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/MultiProgressManager.html

    r3044 r3051  
    55<link rel="stylesheet" href="../../../../style.css" type="text/css" media="screen"> 
    66<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"> 
    88<title>com.katapad.load.multiprogress.MultiProgressManager</title> 
    99</head> 
     
    2020</tr> 
    2121<tr class="titleTableRow2"> 
    22 <td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;MultiProgressManager</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a></td> 
     22<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;MultiProgressManager</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a>&nbsp;| <a href="#constantSummary">Constants</a></td> 
    2323</tr> 
    2424<tr class="titleTableRow3"> 
     
    2828<script type="text/javascript" language="javascript"> 
    2929<!-- 
    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);} 
     30if (!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);} 
    3131--></script> 
    3232<div class="MainContent"> 
     
    100100</tr> 
    101101<tr class=""> 
     102<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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=""> 
    102114<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#percent">percent</a> : Number<div class="summaryTableDescription">[read-only] 
    103115   現状のパーセントを取得します 
     
    114126<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#totalPercentRange">totalPercentRange</a> : Number<div class="summaryTableDescription">[read-only] 
    115127   トータルのパーセントを取得します 
     128   </div> 
     129</td><td class="summaryTableOwnerCol">MultiProgressManager</td> 
     130</tr> 
     131<tr class=""> 
     132<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#useFriction">useFriction</a> : Boolean<div class="summaryTableDescription"> 
     133   パーセントの上昇ををスムーズ(線形補完)にするかどうか 
    116134   </div> 
    117135</td><td class="summaryTableOwnerCol">MultiProgressManager</td> 
     
    165183<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"> 
    166184<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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"> 
     193<div class="summarySignature"> 
    167194<a class="signatureLink" href="#pause()">pause</a>():void</div> 
    168195<div class="summaryTableDescription"> 
     
    174201<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"> 
    175202<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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"> 
     232<div class="summarySignature"> 
    176233<a class="signatureLink" href="#resume()">resume</a>():void</div> 
    177234<div class="summaryTableDescription"> 
     
    186243<div class="summaryTableDescription"> 
    187244   これを呼ぶと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>&nbsp;</th><th colspan="2">Constant</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th> 
     256</tr> 
     257<tr class=""> 
     258<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#VERSION">VERSION</a> : String = "0.1.2"<div class="summaryTableDescription">[static] 
     259   Progressイベント 
    188260   </div> 
    189261</td><td class="summaryTableOwnerCol">MultiProgressManager</td> 
     
    198270<a name="propertyDetail"></a> 
    199271<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>&nbsp;&nbsp;[read-write]<p> 
     280   スムーズにするときのfrictionの値。 
     281   </p><span class="label">Implementation</span> 
     282<br> 
     283<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get friction():Number</code> 
     284<br> 
     285<code>&nbsp;&nbsp;&nbsp;&nbsp;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">&nbsp;</td> 
     292</tr> 
     293</table> 
     294<div class="detailBody"> 
     295<code>maxSpeed:Number</code>&nbsp;&nbsp;[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>&nbsp;&nbsp;&nbsp;&nbsp;public function get maxSpeed():Number</code> 
     300<br> 
     301<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set maxSpeed(value:Number):void</code> 
     302<br> 
     303</div> 
    200304<a name="percent"></a> 
    201305<table cellspacing="0" cellpadding="0" class="detailHeader"> 
    202306<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">&nbsp;</td> 
    204308</tr> 
    205309</table> 
     
    240344<br> 
    241345</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">&nbsp;</td> 
     350</tr> 
     351</table> 
     352<div class="detailBody"> 
     353<code>useFriction:Boolean</code>&nbsp;&nbsp;[read-write]<p> 
     354   パーセントの上昇ををスムーズ(線形補完)にするかどうか 
     355   </p><span class="label">Implementation</span> 
     356<br> 
     357<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get useFriction():Boolean</code> 
     358<br> 
     359<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set useFriction(value:Boolean):void</code> 
     360<br> 
     361</div> 
    242362<a name="constructorDetail"></a> 
    243363<div class="detailSectionHeader">Constructor detail</div> 
     
    301421<table border="0" cellspacing="0" cellpadding="0"> 
    302422<tr> 
    303 <td width="20"></td><td><code>uint</code> &mdash; 追加されたアイテムの番号(Arrayのlength - 1)を返します。特に使いません。 
     423<td width="20"></td><td><code>uint</code> &mdash; 追加されたアイテムの通し番号を返します。 
    304424   </td> 
    305425</tr> 
     
    326446   破棄します 
    327447   </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">&nbsp;</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> &mdash; ModelがaddProgressされてるかどうか 
     468   </td> 
     469</tr> 
     470</table> 
     471</div> 
    328472<a name="pause()"></a> 
    329473<table cellspacing="0" cellpadding="0" class="detailHeader"> 
     
    336480   パーセントの監視を中断します 
    337481   </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">&nbsp;</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> &mdash; 削除したいmodel 
     495   </td> 
     496</tr> 
     497<tr> 
     498<td class="paramSpacer">&nbsp;</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> &mdash; ついでに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> &mdash;  
     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">&nbsp;</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> &mdash; addProgressしたときに 
     530   </td> 
     531</tr> 
     532<tr> 
     533<td class="paramSpacer">&nbsp;</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> &mdash; ついでに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> &mdash;  
     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">&nbsp;</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> 
    338575<a name="resume()"></a> 
    339576<table cellspacing="0" cellpadding="0" class="detailHeader"> 
     
    356593   これを呼ぶとEnterFrameで監視し、progresseventが発生します。 
    357594   </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> 
    358607<br> 
    359608<br> 
  • as3/MultiProgressManager/trunk/doc/com/katapad/load/multiprogress/SiMultiProgressManager.html

    r3044 r3051  
    6464</tr> 
    6565<tr class="hideInheritedProperty"> 
     66<td class="summaryTablePaddingCol">&nbsp;</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">&nbsp;</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"> 
    6678<td class="summaryTablePaddingCol">&nbsp;</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"> 
    6779   現状のパーセントを取得します 
     
    7890<td class="summaryTablePaddingCol">&nbsp;</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"> 
    7991   トータルのパーセントを取得します 
     92   </div> 
     93</td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 
     94</tr> 
     95<tr class="hideInheritedProperty"> 
     96<td class="summaryTablePaddingCol">&nbsp;</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   パーセントの上昇ををスムーズ(線形補完)にするかどうか 
    8098   </div> 
    8199</td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 
     
    137155<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"> 
    138156<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> 
    140158</div> 
    141159<div class="summaryTableDescription">[static] 
    142    getInstance 
     160   複数のプログレスをまとめるクラスを作ります 
    143161   </div> 
    144162</td><td class="summaryTableOwnerCol">SiMultiProgressManager</td> 
     
    147165<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 
    148166<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">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"> 
     175<div class="summarySignature"> 
    149176<a class="signatureLink" href="MultiProgressManager.html#pause()">pause</a>():void</div> 
    150177<div class="summaryTableDescription"> 
    151178   パーセントの監視を中断します 
     179   </div> 
     180</td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 
     181</tr> 
     182<tr class="hideInheritedMethod"> 
     183<td class="summaryTablePaddingCol">&nbsp;</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">&nbsp;</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">&nbsp;</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に入れ替えます 
    152209   </div> 
    153210</td><td class="summaryTableOwnerCol"><a href="MultiProgressManager.html">MultiProgressManager</a></td> 
     
    176233<div class="summarySection"> 
    177234<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> 
    178243<table id="summaryTableConstant" class="summaryTable " cellpadding="3" cellspacing="0"> 
    179244<tr> 
     
    181246</tr> 
    182247<tr class=""> 
    183 <td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</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> 
    184253</td><td class="summaryTableOwnerCol">SiMultiProgressManager</td> 
     254</tr> 
     255<tr class="hideInheritedConstant"> 
     256<td class="summaryTablePaddingCol">&nbsp;</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> 
    185260</tr> 
    186261</table> 
     
    242317</table> 
    243318<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    getInstance 
     319<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   複数のプログレスをまとめるクラスを作ります 
    246321   </p><span class="label">Parameters</span> 
    247322<table border="0" cellspacing="0" cellpadding="0"> 
    248323<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">&nbsp;</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">&nbsp;</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">&nbsp;</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> &mdash;  EnterFrame用DisplayObject。通常はstageの参照を渡します。 
     325   </td> 
     326</tr> 
     327<tr> 
     328<td class="paramSpacer">&nbsp;</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> &mdash;  パーセントをスムーズにするかどうか 
     332   </td> 
     333</tr> 
     334<tr> 
     335<td class="paramSpacer">&nbsp;</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> &mdash;  スムーズにするときのfrictionの値。 
     339   </td> 
     340</tr> 
     341<tr> 
     342<td class="paramSpacer">&nbsp;</td> 
     343</tr> 
     344<tr> 
     345<td width="20px"></td><td><code><span class="label">maxSpeed</span>:Number</code> &mdash;  useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 
     346   </td> 
    268347</tr> 
    269348</table> 
     
    285364</table> 
    286365<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> 
    288371<br> 
    289372<br> 
  • as3/MultiProgressManager/trunk/sample/deploy/assets/xml/config.xml

    r3043 r3051  
    55                <img src="assets/img/l_2.jpg" /> 
    66                <img src="assets/img/l_3.jpg" /> 
    7                 <img src="assets/img/l_4.jpg" /> 
     7                <img src="assets/img/_4.jpg" /> 
    88        </imgs> 
    99</data> 
  • as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/AssetsLoadThread.as

    r3043 r3051  
    55        import com.katapad.load.multiprogress.AbstractProgressModel; 
    66        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; 
    810        import flash.events.Event; 
    911        import multiprogresssample.model.Context; 
     
    2729                private var _context:Context; 
    2830                private var _bulkLoader:BulkLoader; 
     31                private var _bulkModel:AbstractProgressModel; 
    2932                 
    3033                /** 
     
    6164                        _bulkLoader = null; 
    6265                        _context = null; 
     66                        _bulkModel = null; 
    6367                        trace("[AssetsLoadThread finalize]"); 
    6468                } 
     
    99103                         
    100104                        //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); 
    107107                         
    108108                        //BulkLoaderのcompleteイベントを待ちます 
    109109                        join(); 
    110110                        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                        } 
    111147                } 
    112148                 
     
    121157                        { 
    122158                                //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); 
    124162                        } 
    125163                         
  • as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/controller/thread/OpenContentsThread.as

    r3043 r3051  
    9090                { 
    9191                        //残り分を回します 
     92                        trace( "_context.progressManager.remainedPercentRange : " + _context.progressManager.remainedPercentRange ); 
    9293                        var model:NullProgressModel = new NullProgressModel(_context.progressManager.remainedPercentRange); 
    9394                        _context.progressManager.addProgress(model); 
  • as3/MultiProgressManager/trunk/sample/src/classes/multiprogresssample/view/MainContainer.as

    r3043 r3051  
    5353                public function build(bitmapList:Array):void 
    5454                { 
     55                        if (!bitmapList) 
     56                                return; 
    5557                        for (var i:int = 0, n:int = bitmapList.length; i < n; ++i)  
    5658                        { 
  • as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/MultiProgressManager.as

    r3043 r3051  
    2525{ 
    2626        import flash.display.DisplayObject; 
    27         import flash.display.Sprite; 
     27        import flash.display.Shape; 
    2828        import flash.display.Stage; 
    2929        import flash.events.Event; 
    3030        import flash.events.EventDispatcher; 
     31        import flash.utils.Dictionary; 
    3132         
    3233        /** 
     
    7475         *  
    7576         * @author katapad 
    76          * @version 0.1.1 
     77         * @version 0.1.2 
    7778         * @since 2009/02/06 18:39 
    7879         */ 
     
    100101                //  static var/const 
    101102                //---------------------------------- 
    102                  
     103                /** 
     104                 * 2009/08/26 13:27 
     105                 */ 
     106                public static const VERSION:String = "0.1.2"; 
    103107                //---------------------------------- 
    104108                //  instance var  
    105109                //---------------------------------- 
    106                 private var _progressModelList:/*AbstractProgressModel*/Array; 
     110                private var _progressModelDict:/*AbstractProgressModel*/Dictionary; 
    107111                private var _totalPercentRange:Number; 
    108112                 
     
    114118                private var _friction:Number; 
    115119                private var _useFriction:Boolean; 
     120                 
     121                private var _additionIndex:uint; 
     122                 
     123                 
    116124                 
    117125                /** 
     
    128136                 
    129137                /** 
    130                  *  
     138                 * 初期化 
    131139                 * @param       enterframe 
    132140                 * @param       useFriction 
     
    136144                private function init(enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number):void  
    137145                { 
    138                         _enterframe = enterframe || new Sprite(); 
     146                        _enterframe = enterframe || new Shape(); 
    139147                        _useFriction = useFriction; 
    140148                        _friction = friction; 
    141149                        _maxSpeed = maxSpeed; 
    142                         _progressModelList = []
     150                        _progressModelDict = new Dictionary(false)
    143151                        _percent = _frictionPercent = _totalPercentRange = 0; 
     152                        _additionIndex = 0; 
    144153                } 
    145154                 
     
    158167                 * progressModelを追加します。 
    159168                 * @param       progressModel 
    160                  * @return      追加されたアイテムの番号(Arrayのlength - 1)を返します。特に使いません。 
     169                 * @return      追加されたアイテムの通し番号を返します。 
    161170                 */ 
    162171                public function addProgress(progressModel:AbstractProgressModel):uint 
    163172                { 
     173                        if (_totalPercentRange + progressModel.pecentRange > 1) 
     174                                throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 
    164175                        _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; 
    169254                } 
    170255                 
     
    192277                        updateOn(); 
    193278                } 
    194                  
    195279                 
    196280                /** 
     
    209293                public function destroy():void 
    210294                { 
    211                         if (!_progressModelList) 
     295                        if (!_progressModelDict) 
    212296                                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                        { 
    216299                                model.destroy(); 
    217300                        } 
    218                         _progressModelList = null; 
     301                        _progressModelDict = null; 
    219302                } 
    220303                //-------------------------------------------------------------------------- 
     
    268351                } 
    269352                 
     353                private function afterRemoveProgressModelProc(progressModel:AbstractProgressModel, isDestroyModel:Boolean):void 
     354                { 
     355                        _totalPercentRange -= progressModel.pecentRange; 
     356                        if (isDestroyModel) 
     357                                progressModel.destroy(); 
     358                } 
     359                 
    270360                //---------------------------------- 
    271361                //  calc 
     
    274364                { 
    275365                        var result:Number = 0.0; 
    276                         for each(var model:AbstractProgressModel in _progressModelList)  
     366                        for each(var model:AbstractProgressModel in _progressModelDict)  
    277367                        { 
    278368                                result += model.revisedPercent; 
     
    323413                } 
    324414                 
     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                 
    325445        } 
    326446         
  • as3/MultiProgressManager/trunk/sample/src/lib/com/katapad/load/multiprogress/SiMultiProgressManager.as

    r3046 r3051  
    3636                //  static var/const 
    3737                //---------------------------------- 
    38                 /** ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので */ 
     38                /** どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 
     39                 * stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 
     40                 * SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 
     41                 * それで、main側がこのイベント名に反応して表示を開始します。 
     42                 */ 
    3943                public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete" 
    4044                 
     
    4549                private static var _instance:SiMultiProgressManager; 
    4650                /** 
    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…とあがっていきます 
    4856                 */ 
    4957                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  
    2525{ 
    2626        import flash.display.DisplayObject; 
    27         import flash.display.Sprite; 
     27        import flash.display.Shape; 
    2828        import flash.display.Stage; 
    2929        import flash.events.Event; 
    3030        import flash.events.EventDispatcher; 
     31        import flash.utils.Dictionary; 
    3132         
    3233        /** 
     
    7475         *  
    7576         * @author katapad 
    76          * @version 0.1.1 
     77         * @version 0.1.2 
    7778         * @since 2009/02/06 18:39 
    7879         */ 
     
    100101                //  static var/const 
    101102                //---------------------------------- 
    102                  
     103                /** 
     104                 * 2009/08/26 13:27 
     105                 */ 
     106                public static const VERSION:String = "0.1.2"; 
    103107                //---------------------------------- 
    104108                //  instance var  
    105109                //---------------------------------- 
    106                 private var _progressModelList:/*AbstractProgressModel*/Array; 
     110                private var _progressModelDict:/*AbstractProgressModel*/Dictionary; 
    107111                private var _totalPercentRange:Number; 
    108112                 
     
    115119                private var _useFriction:Boolean; 
    116120                 
     121                private var _additionIndex:uint; 
     122                 
     123                 
     124                 
    117125                /** 
    118126                 * 複数のプログレスをまとめるクラスを作ります 
    119127                 * @param       enterframe              EnterFrame用DisplayObject。通常はstageの参照を渡します。 
    120                  * @param       useFriction             パーセントの上昇ををスムーズ(線形補完)にするかどうか 
     128                 * @param       useFriction             パーセントをスムーズにするかどうか 
    121129                 * @param       friction                スムーズにするときのfrictionの値。 
    122130                 * @param       maxSpeed                useFriction時にパーセントの伸びの1フレームあたりの限界値を設定します。0.1を設定すると 0から1に一気にいくのではなく、0.1、0.2、0.3…とあがっていきます 
     
    128136                 
    129137                /** 
    130                  *  
     138                 * 初期化 
    131139                 * @param       enterframe 
    132140                 * @param       useFriction 
     
    136144                private function init(enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number):void  
    137145                { 
    138                         _enterframe = enterframe || new Sprite(); 
     146                        _enterframe = enterframe || new Shape(); 
    139147                        _useFriction = useFriction; 
    140148                        _friction = friction; 
    141149                        _maxSpeed = maxSpeed; 
    142                         _progressModelList = []
     150                        _progressModelDict = new Dictionary(false)
    143151                        _percent = _frictionPercent = _totalPercentRange = 0; 
     152                        _additionIndex = 0; 
    144153                } 
    145154                 
     
    158167                 * progressModelを追加します。 
    159168                 * @param       progressModel 
    160                  * @return      追加されたアイテムの番号(Arrayのlength - 1)を返します。特に使いません。 
     169                 * @return      追加されたアイテムの通し番号を返します。 
    161170                 */ 
    162171                public function addProgress(progressModel:AbstractProgressModel):uint 
    163172                { 
     173                        if (_totalPercentRange + progressModel.pecentRange > 1) 
     174                                throw new Error("percentRangeが大きすぎます。トータルで1.0になるように設定してください"); 
    164175                        _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; 
    169254                } 
    170255                 
     
    192277                        updateOn(); 
    193278                } 
    194                  
    195279                 
    196280                /** 
     
    209293                public function destroy():void 
    210294                { 
    211                         if (!_progressModelList) 
     295                        if (!_progressModelDict) 
    212296                                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                        { 
    216299                                model.destroy(); 
    217300                        } 
    218                         _progressModelList = null; 
     301                        _progressModelDict = null; 
    219302                } 
    220303                //-------------------------------------------------------------------------- 
     
    268351                } 
    269352                 
     353                private function afterRemoveProgressModelProc(progressModel:AbstractProgressModel, isDestroyModel:Boolean):void 
     354                { 
     355                        _totalPercentRange -= progressModel.pecentRange; 
     356                        if (isDestroyModel) 
     357                                progressModel.destroy(); 
     358                } 
     359                 
    270360                //---------------------------------- 
    271361                //  calc 
     
    274364                { 
    275365                        var result:Number = 0.0; 
    276                         for each(var model:AbstractProgressModel in _progressModelList)  
     366                        for each(var model:AbstractProgressModel in _progressModelDict)  
    277367                        { 
    278368                                result += model.revisedPercent; 
  • as3/MultiProgressManager/trunk/src/com/katapad/load/multiprogress/SiMultiProgressManager.as

    r3043 r3051  
    3636                //  static var/const 
    3737                //---------------------------------- 
    38                 /** ステージ経由でローディングviewのイベントを渡すので、ここにイベントの名前を置いておく。LoadingView.COMPLETEとかだったらmain側に無駄な容量増えちゃうので */ 
     38                /** どこかで必ずパーセント表示が終了したときのイベントを使うので、ここに名前を書いておきます。 
     39                 * stage.dispatchEvent(SiMultiProgressManager.LOADING_VIEW_EVENT_COMPLETE~~)や 
     40                 * SiMultiProgressManagerのインスタンス自身にこのイベントを発行させてもいいかと思います。 
     41                 * それで、main側がこのイベント名に反応して表示を開始します。 
     42                 */ 
    3943                public static const LOADING_VIEW_EVENT_COMPLETE:String = "loadingViewEventComplete" 
    4044                 
     
    4549                private static var _instance:SiMultiProgressManager; 
    4650                /** 
    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…とあがっていきます 
    4856                 */ 
    49                 public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = false, friction:Number = 0.3, maxSpeed:Number = NaN):SiMultiProgressManager 
     57                public static function getInstance(enterframe:DisplayObject = null, useFriction:Boolean = true, friction:Number = 0.3, maxSpeed:Number = NaN):SiMultiProgressManager 
    5058                { 
    5159                        if (_instance == null)  
     
    5967                public function SiMultiProgressManager(enforcer:SingletonEnforcer, enterframe:DisplayObject, useFriction:Boolean, friction:Number, maxSpeed:Number)  
    6068                { 
    61                         super(); 
     69                        super(enterframe, useFriction, friction, maxSpeed); 
    6270                } 
    6371