「ParaFla! ノート」の編集履歴(バックアップ)一覧はこちら

ParaFla! ノート - (2012/06/29 (金) 17:27:39) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

#include_js(http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/shCore.js) #include_js(http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/shBrushCpp.js) #include(ParaFlaHeaderMenu) #divclass(marginleft16){{ **目次 #divclass(marginleft16){ #contents(fromhere=true) } }} ***説明 ParaFla! はフリーのFLASHエディタです。アクションスクリプト(AS)も使えます。ネット上にも多数の解説サイトがあり環境は整っていますが、一部わかりにくいところもあります。私がつまづいたポイントをまとめておきます。困った時に、副読本としてご覧いただければ幸い。 ***オススメサイト #divclass(marginleft16){ -[[ParaFla! Wiki>>http://www.wikihouse.com/ParaFla/]] まさに本家というWikiです。解説はあんまりないのですが、膨大なサンプルがアップされており、具体性と即効性はピカイチです。 -[[パラフラ学習帳>>http://parafla776.jog.buttobi.net/]] 紙芝居ツールとしての概要、使い方が分かりやすいサイトです。 -[[ParaFla! 進学講座>>http://www.geocities.jp/para_core/kouza/]] 私が一番参考に使ったサイトです。「よくある文法リファレンス」として便利。 -[[区立ぱらふら予備校>>http://www.geocities.jp/dr0p4u/how2/]] AS どころかプログラム初心者で、右も左もサッパリならこちらをどうぞ。 -[[デザインFlash待受画像ギャラリー! Design Flash Wall Gallery!>>http://nsflash.com/]] むしろフラッシュのダウンロードサイトですが、[[携帯向けactionscript>>http://nsflash.com/action/action.html]]には、FSCommand2() が見やすくまとめてあります。 } ***デバッグ出力のススメ #divclass(marginleft16){ ParaFla! は、実行前から明らかな設定ミスや衝突があっても、エラー報告がほとんど起こらずプレビューが強行されます(もちろん表示類は妙な事になります)。変数などはこまめに画面に表示したり、一手間を心がけた方が良さそうです。とくに慣れるまでは用心した方が無難。 } ***"スプライト"の説明 #divclass(marginleft16){ 要はレイヤーとかそういうもののようです。 [[→ モノ好きだから読んでみる。>ParaFla! の "スプライト" って何だ?]] } ***removeClip() と duplicateClip() したスプライトの寿命 #divclass(marginleft16){ インスタンスの動的生成には解放がつきもののはずですが、意外と騒がれないのが気になって調べてみました。どうも削除を行う removeClip() は正の AS 深度のスプライトしか削除しないようです。 #html2(){<pre name="code" class="cpp:nocontrols">// 深度が負のスプライトは、1フレームで自動的に削除されます。 // 必然的に、毎フレームduplicateClip()することになります。 duplicateClip("srcHoge","destHoge1",-1); // 深度が-1なので1フレームで自動削除 // 深度が0以上のスプライトは、removeClip()されるまで残ります。 duplicateClip("srcHoge","destHoge2",0); // 深度が0なので残り続けます。</pre>} duplicateClip() に設定した深度がマイナスだと 1 フレームで消えます。一方、正の値を使用したときは removeClip() 可能なので、removeClip() するまで存命します。 ParaFla! の深度ゼロは AS深度の -16127 に相当し、ParaFla! から設定可能な深度は ±256 に限られます。duplicateClip() を呼びだし複製したスプライトを、もし ParaFla! で最初から存在するスプライトの裏に配置したければ、duplicateClip() の深度には -16127±256 の範囲にある負の値を設定する必要があります。もちろん負の深度なので1フレームで消えます。基本的に毎フレーム複製する必要があります。 それでも毎フレーム複製するのは処理負荷だと思ったら、前後関係が発生するリソースを、あらかじめスプライトにまとめましょう。スプライトごと複製してしまえば正の範囲の AS 深度にマスク画像などを置く事が出来ます。 -全て負の深度( -16127±256 )に置く必要があり、毎フレーム複製処理の必要なケース ↑深度の値が大きい↑ 親スプライト &tt(){├ }動的な複製スプライト (マスク対象) &tt(){│ └ }イメージ画像 &tt(){└ }マスク画像 ↓深度の値が小さい↓ -正の深度に複製可能で、毎フレーム複製処理の必要がないケース。 ↑深度の値が大きい↑ 親スプライト &tt(){└ }動的な複製スプライト &tt(){  ├ }イメージ画像 (マスク対象) &tt(){  └ }マスク画像 ↓深度の値が小さい↓ } ***SWF4 rotation の不思議仕様 精度落ち対策 #divclass(marginleft16){ 携帯待ち受けなどに使われるSWF4環境には、わりと残念な仕様が多いようで、私が確認した現象とその対策をメモしておきます。 -【現象1】アナログ時計の針を回転させたら、どんどん縮んでいく。 -【現象2】細かな位置・角度変更を続けると動きがガタつく、位置がズレる、縮んで消えるなどする。 結論から言ってしまうと、「スプライトは座標の記録や計算の精度が低く、誤差が累積しやすいので出来るだけ慎重に動かす」という事なのですが、同じような現象に困った時は、こちらのメモを確認してみて下さい。 [[→ モノ好きだから読んでみる。>SWF4 rotation の不思議仕様・精度落ち対策]] } ---- ---- #javascript(){{ <script type="text/javascript"><!-- dp.SyntaxHighlighter.ClipboardSwf = 'http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); //--></script> }}
#include_js(http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/shCore.js) #include_js(http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/shBrushCpp.js) #include(ParaFlaHeaderMenu) 【注意】結構古いコンテンツなので話半分でお願いします! #divclass(marginleft16){{ **目次 #divclass(marginleft16){ #contents(fromhere=true) } }} ***説明 ParaFla! はフリーのFLASHエディタです。アクションスクリプト(AS)も使えます。ネット上にも多数の解説サイトがあり環境は整っていますが、一部わかりにくいところもあります。私がつまづいたポイントをまとめておきます。困った時に、副読本としてご覧いただければ幸い。 ***オススメサイト #divclass(marginleft16){ -[[ParaFla! Wiki>>http://www.wikihouse.com/ParaFla/]] まさに本家というWikiです。解説はあんまりないのですが、膨大なサンプルがアップされており、具体性と即効性はピカイチです。 -[[パラフラ学習帳>>http://parafla776.jog.buttobi.net/]] 紙芝居ツールとしての概要、使い方が分かりやすいサイトです。 -[[ParaFla! 進学講座>>http://www.geocities.jp/para_core/kouza/]] 私が一番参考に使ったサイトです。「よくある文法リファレンス」として便利。 -[[区立ぱらふら予備校>>http://www.geocities.jp/dr0p4u/how2/]] AS どころかプログラム初心者で、右も左もサッパリならこちらをどうぞ。 -[[デザインFlash待受画像ギャラリー! Design Flash Wall Gallery!>>http://nsflash.com/]] むしろフラッシュのダウンロードサイトですが、[[携帯向けactionscript>>http://nsflash.com/action/action.html]]には、FSCommand2() が見やすくまとめてあります。 } ***デバッグ出力のススメ #divclass(marginleft16){ ParaFla! は、実行前から明らかな設定ミスや衝突があっても、エラー報告がほとんど起こらずプレビューが強行されます(もちろん表示類は妙な事になります)。変数などはこまめに画面に表示したり、一手間を心がけた方が良さそうです。とくに慣れるまでは用心した方が無難。 } ***"スプライト"の説明 #divclass(marginleft16){ 要はレイヤーとかそういうもののようです。 [[→ モノ好きだから読んでみる。>ParaFla! の "スプライト" って何だ?]] } ***removeClip() と duplicateClip() したスプライトの寿命 #divclass(marginleft16){ インスタンスの動的生成には解放がつきもののはずですが、意外と騒がれないのが気になって調べてみました。どうも削除を行う removeClip() は正の AS 深度のスプライトしか削除しないようです。 #html2(){<pre name="code" class="cpp:nocontrols">// 深度が負のスプライトは、1フレームで自動的に削除されます。 // 必然的に、毎フレームduplicateClip()することになります。 duplicateClip("srcHoge","destHoge1",-1); // 深度が-1なので1フレームで自動削除 // 深度が0以上のスプライトは、removeClip()されるまで残ります。 duplicateClip("srcHoge","destHoge2",0); // 深度が0なので残り続けます。</pre>} duplicateClip() に設定した深度がマイナスだと 1 フレームで消えます。一方、正の値を使用したときは removeClip() 可能なので、removeClip() するまで存命します。 ParaFla! の深度ゼロは AS深度の -16127 に相当し、ParaFla! から設定可能な深度は ±256 に限られます。duplicateClip() を呼びだし複製したスプライトを、もし ParaFla! で最初から存在するスプライトの裏に配置したければ、duplicateClip() の深度には -16127±256 の範囲にある負の値を設定する必要があります。もちろん負の深度なので1フレームで消えます。基本的に毎フレーム複製する必要があります。 それでも毎フレーム複製するのは処理負荷だと思ったら、前後関係が発生するリソースを、あらかじめスプライトにまとめましょう。スプライトごと複製してしまえば正の範囲の AS 深度にマスク画像などを置く事が出来ます。 -全て負の深度( -16127±256 )に置く必要があり、毎フレーム複製処理の必要なケース ↑深度の値が大きい↑ 親スプライト &tt(){├ }動的な複製スプライト (マスク対象) &tt(){│ └ }イメージ画像 &tt(){└ }マスク画像 ↓深度の値が小さい↓ -正の深度に複製可能で、毎フレーム複製処理の必要がないケース。 ↑深度の値が大きい↑ 親スプライト &tt(){└ }動的な複製スプライト &tt(){  ├ }イメージ画像 (マスク対象) &tt(){  └ }マスク画像 ↓深度の値が小さい↓ } ***SWF4 rotation の不思議仕様 精度落ち対策 #divclass(marginleft16){ 携帯待ち受けなどに使われるSWF4環境には、わりと残念な仕様が多いようで、私が確認した現象とその対策をメモしておきます。 -【現象1】アナログ時計の針を回転させたら、どんどん縮んでいく。 -【現象2】細かな位置・角度変更を続けると動きがガタつく、位置がズレる、縮んで消えるなどする。 結論から言ってしまうと、「スプライトは座標の記録や計算の精度が低く、誤差が累積しやすいので出来るだけ慎重に動かす」という事なのですが、同じような現象に困った時は、こちらのメモを確認してみて下さい。 [[→ モノ好きだから読んでみる。>SWF4 rotation の不思議仕様・精度落ち対策]] } ---- ---- #javascript(){{ <script type="text/javascript"><!-- dp.SyntaxHighlighter.ClipboardSwf = 'http://www31.atwiki.jp/kouraku_tiritomado/pub/SyntaxHilighter/Scripts/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); //--></script> }}

表示オプション

横に並べて表示:
変化行の前後のみ表示:
記事メニュー
目安箱バナー