• 05 «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • » 07
ASOK?
ActionScriptでFlashつくるよ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
page top
別の子swfに遷移すると、タイムラインアニメーションが早送りになるという謎の現象は、タイムラインに埋め込んだサウンドがおかしくなってたのが原因だった。

コンパイル時に"SWF には複数のサウンドアイテムがあります"というメーッセージが出てたのがヒント。
下記ページによると、上記メッセージはサウンドシンボル多重化のエラーを表す。

ふらふら SWF には複数のサウンドアイテムがあります

今回の場合、イベントサウンドにしてたはずが、なぜか"ストリーミング"になっていた。"イベント"にしたらあっさり解消。
つづきを表示
スポンサーサイト
page top
なぜかピクセル縦横比を変更するようなリサイズはできないみたい。つまり映像ソースがスクイーズの場合、正しくリサイズできない。ので、別のツールでピクセル縦横比1:1にリサイズする必要がある。
 →Adobe Media EncoderのためのAvidemux :: ASOK?
[最高レンダリング品質を使用]にチェックでリサイズ品質が向上(たぶん)
他のオプションはそれほど画質に影響ない。(最高深度、2パス、フレーム合成)
page top

Adobe Media Encoderの前処理ツールとしてのAvidemux。

ダウンロード

avidemux - Browse /avidemux at SourceForge.net

とりあえずの結論

  • 中間形式としてはM-JPEG+PCMがいいんじゃね?
  • M-JPEGのquantizer=2が高画質
  • リサイズには"MPlayer resize"がよさげ
  • インターレース解除には"yadif"がよさげ

コーデック

Media Encoderで使えるコーデック

VIDEO

M-JPEG

AUDIO

PCM

Media Encoderで使えないコーデック

VIDEO

FFV1
DV
サイズとFPSに制限があるので実質使えない
MPEG-4 AVC+AVI

AUDIO

MP3(lame)
Media Encoderでエンコード後に音声がおかしくなった

メモ

M-JPEGのオプションのquantizerは数値が小さい=高画質

ビデオコーデックの"MPEG-4 AVC"=x264みたい。

ロスレスなビデオコーデック

HuffYUV or ffHuffYUV (very fast, reasonable compression)
FFV1 (better compression, but slower)
x264/H.264 in "lossless" mode (even better compression, even slower)

How do I encode lossless? (Page 1) - Avidemux-English - Avidemux2 Forum

HuffYUV、FFV1はMedia Encoderで使えない。

解説ページ

page top
前から気になっていた件。
pngのファイルサイズ最適化ツールてのがありますが、flaで使用するpngに使用した場合にswfのサイズに影響が出るかどうか。

pngのファイルサイズ最適化ツール
PNGGauntletとかAzConvPNGとかあります。
ここではインストール不要なAzConvPNGで試してみました。


結論
(AzConvPNGの場合は)影響なし

実験
・photoshopの[web用に保存]でpngを書き出す。ここでは写真2種、テキスト2種の計4つで試してみた。
・上記pngファイルをflaのタイムラインに配置し、サイズレポートをonにしてパブリッシュ
・上記pngファイルをAzConvPNGで最適化
・同様にflaのタイムラインに配置し、サイズレポートをonにしてパブリッシュ
⇒swfのファイルサイズは同じ。サイズレポートの内容も同じでした。

page top

何回か試みてはうまくいかずに放置してたんで、改めて検証。
例としてボタンを作る場合を想定。

実験

その1

  • FlashIDE上でボタン内で使用するパーツ(ムービークリップ)をリンケージ設定
  • ボタン用クラスでパーツをインスタンス生成。

⇒問題ない

その2

  • FlashIDEでボタン用のムービークリップシンボルを作る
  • ボタン用クラスを作りリンケージ設定
  • ボタン内のパーツはタイムラインに配置し、インスタンス名を指定
  • ボタン内パーツMCにはリンケージ設定なし

⇒ボタン用クラスからタイムラインに配置したパーツは参照できない。
null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
当然のことながら、FlashDeveopでswcの中をのぞいても、パーツMCは含まれていない。

その3

  • 上記2のボタン内のパーツMCに、リンケージ設定する
  • それ以外は、上記2と同じ

⇒やっぱりボタン用クラスから、タイムラインに配置したパーツを参照できない。
ただしswcの中には、パーツMCは含まれている。

その4

  • 上記3のボタンからクラス指定をはずし、リンケージ設定のみにする。

⇒インスタンス生成すると、タイムラインに配置したパーツを参照できる!

その5

  • 上記4の状態から、各パーツのリンケージ設定を外す(つまり上記2からクラス指定を外した状態)

⇒やっぱりタイムラインに配置したパーツを参照できる!

まとめ

  • シンボルに独自のクラスを適用した場合、タイムラインに配置したシンボルは無視されてしまうようだ
  • ボタンとして使うことを想定した場合、ボタン用シンボルは不要で、ボタン用パーツにリンケージ設定しておけばよい。

なぜそうなるか考えた

リンケージ設定があるが、そのクラスファイルが見つからない場合、Flashがクラスファイルを内部的に生成してるらしい。で、たぶん、その生成されるクラスファイルには、タイムラインに配置したパーツのインスタンス生成コードが、自動で入ってるんじゃなかろうか。

⇒あ、でも、それだとリンケージ設定しなくても(上記5の場合)パーツが参照できる理由がわからないな…

⇒⇒ってことで、タイムライン配置したインスタンスがどう処理されているのかよくわかりません。

page top
Copyright © 2005 ASOK?. all rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。