Flash ( 概要一覧 | 詳細一覧 )

FLV書き出しについてのバグ

061012

こんにちは、なかわけです。

今日は先日発見したFlash8のバグの話です。

仕事で30分くらいのムービー(そのときは.mov)を公開する作業があったんだけど、Flashに読み込んでFLVに書き出すときに、必ずエラーがでてしまい、うまく書き出せませんでした。
ムービーが長いからかな、っと思って適当な短いムービーを書き出そうとしても同じようにエラーがでやがりました。

なんだなんだといろいろ現象を観察したところ、どうやらLAN環境にあるPCでそのマシンとはちがうHD上(たとえばファイルサーバとかでドメイン管理(?)している環境)でFLV書き出しを行おうとするエラーになってしまうようでした。

つまり、FLVの書き出しはそのPCのデスクトップとかDドライブとかでないとできないということです。
これを発見したときは、なんだよーーー!という気持ちでいっぱいでした。このバグに対するアップデータはもうでてるのでしょうか。まだ調べてません。

関連アイテム

 

Flash8インストールバグ

061025

環境によってかもしれないけど、Flash8は1回目のインストールに失敗します。「ディスク1を挿入してください」みたいなエラーが表示されて、okをクリックしても進みません。その後一回キャンセルしてもう一回インストールCDを入れて、インストールボタンをクリック。そのときに、「修復」と「削除」の選択ダイアログが出るので、「修復」を選択して進んでいくと問題なく修復されてインストールされるようです。

なんだよ、このバグ。

関連アイテム

 

FlashPlayerのダウングレード

070215

こんにちは、なかわけです。

今日はFlashPlayerのダウングレードの話。
ウェブデザインをしていると動作確認のためにFlashPlayerが必要なときがあります。
お客さんから「Flashが見れないんですけど~・・・」と言われても「アップグレードしてください」とはなかなか言えず、「すいません。」のときが多いハズ。
一回アップグレードしちゃったFlashPlayerはダウングレードできないのかな~といままで思ってましたが、実は古いFlashPlayerがアーカイブとして取ってあったんですね、macromediaさんのサイトに。

▼コレがそのFlashPlayerのアーカイブのURL
http://www.macromedia.com/support/flash/ts/documents/oldplayers.htm

いやいや、偶然見つけてラッキー☆(←死語)でしたよ。知らない人結構いるんじゃない?
FlashPlayerのダウングレード、試してみてください。

関連アイテム

 

FlashPlayerのアンインストール

070222

こんにちは、なかわけです。

先日の『FlashPlayerのダウングレード』の話の続き。

FlashPlayerの旧バージョンを手に入れてもそのままダウングレードできないことがあります。windowsの場合、コントロールパネルから、プログラムの削除としてもうまくブラウザのプラグインまで削除されないのです。Macintoshの場合はlibraryのpreference(だったかな?)から削除すればたぶん削除できます。

でも、わからん!という人も多いと思うし、いちいちめんどくさい。で、調べてみたら、英語版だったけどAdobe社さん(旧macromediaさん)がアンインストーラを配ってました。

▼英語版FlashPlayerアンインストーラ
http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_14157

英語版ではありますが、英語読めなくても使えます。大丈夫。知っておくと便利。持っておくと便利。

関連アイテム

 

FlashにPhotoshopファイルを読み込み

070223

こんにちは、なかわけです。

またFlashネタです。背景が透けてる(透過)画像をFlashで動かしたいときの話。

透過gifを使うと画像のふちにジャギー(ギザギザ)が見えてしまったり、画像をパスでなぞってマスクをつくるのが面倒くさかったり・・・。そんなときはPhotoshopファイルをそのまま読み込みます。

画像の処理はFlash上でするよりいくらか加工しやすいのでPhotoshopで行って、くり抜きたい画像を作ってそれをpsd形式で保存(このとき背景レイヤーは削除しておきます)。それをそのままFlashで読み込みとすれば、レイヤーを保持したまま透過した画像が読み込めます。あー便利。

このときに注意!読み込むpsdファイルがネットワークサーバーなど、作業中のパソコン以外の中にある場合エラーが発生して読み込みに失敗します。対策としては作業中のパソコンにpsdファイルをコピーするというそのままの方法で解決します。

あー、ちょっと悩んじゃったよ。『FLV書き出しについてのバグ』のバグと同じだったよ。しょぼん。

関連アイテム

 

Flashのタイムラインに動画を埋め込んだときの圧縮と容量の関係

070323

こんにちは、なかわけです。

今日はFlashの動画圧縮の話。

今日仕事でFlashに動画を取り込む作業をしたのですが、Flashの動画圧縮の変な仕様に気がつきました。気になったので少し実験してみました。
今回はムービーをタイムラインに埋め込んだ場合の話で、FlashPlayerのバーションは6以下を対象とした設定です。

6MBの動画(15秒)をソースとし、読み込む設定で画質をある値に固定し、ムービーの画面サイズ(解像度)を大・中・小と3つのサイズのswfを書き出しました。出力されたswfのサイズは3つとも1.2MB程度とほとんど差がありませんでした。予想では画面サイズ(解像度)が小さいほど容量が小さいくなると考えていたのですが、そうではないようです。

次に同じ動画ソース(6MB・約15秒)の画面サイズを固定して、ビットレート(1秒間のデータ量)を高・中・低と3つのムービーを書き出したところ、こちらは予想通りビットレートが高い方が容量が大きく、低い方が容量が軽かったです。

これらの実験からわかったことは、動画ソースの尺(時間)が決まっている場合、画面サイズに関係なく容量を軽くするには画質を落とすしか方法がないということになります。

しかしこれだと高画質で軽いFlash動画が作れないことになります。きっと何かいい方法があるはず。ちょっと研究してみようと思います。意味わからん。

関連アイテム

 

FlashのExpress Install

070413

こんにちは、なかわけです。

FlashのExpress Installって知ってますか?この間知ってちょっと感動しました。
古いPlayerでFlashサイトを見たときに、「最新版のFlashPlayerをダウンロードしてください」って画面が表示されて、それをクリックするといちいちAdobeさんのサイトに飛んでっちゃって今まで見てたサイトが消えちゃう・・・。って言うことが回避できるみたいです。

▼今までの「ダウンロードしてください」のイメージ
oldinstall

▼「Express Install」を使用したときのイメージ
expressinstall
(c)Adobe

コレを使えばサイトの運営側もお客さんを逃さないし、サイトの訪問側もイライラストレスも軽減されそうです。実際やってみましたがFlashの制作側はちょっと面倒くさいですw
便利っちゃ便利。

▼Adobe(macromedia)の紹介ページ
http://www.adobe.com/jp/devnet/flashplayer/articles/expressinstall.html

関連アイテム

 

JavascriptによるFlashの頭出し再生

070521

こんにちは、なかわけです。

JavascriptによるFlashの頭だし再生。仕事で作ってみたのでまとめときます。

概要はこんな感じ。ひとつのFlashの中で複数のコンテンツが存在するときに、HTMLのリンクからある特定のコンテンツから再生する。

つくりかたは結構カンタンで、Flashを配置しているHTMLにJavascriptの「location.search」を使用してURLのおしりに付けている変数を取得します。location.searchって賢いもんで、たとえば

http://nakawake.net/flash.html?content=4

というURLがあったときに?content=4だけ取得するんです。すごい。

この取得した値をFlashに受け渡すには参照ファイル名の後にくっつければいいので、Javascriptと一緒に書くと、

document.write(' <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="urlvariables" align="middle"> ');
document.write(' <param name="allowScriptAccess" value="sameDomain" /> ');
document.write(' <param name="movie" value="urlvariables.swf' +location.search+ '" /> ');
document.write(' <param name="quality" value="high" /> ');
document.write(' <param name="bgcolor" value="#ffffff" /> ');
document.write(' <embed src="urlvariables.swf' +location.search+ '" quality="high" bgcolor="#ffffff" width="550" height="400" name="urlvariables" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> ');
document.write(' </object> ');

とすれば、JavascriptがFlashを出力しつつURLの変数を取得してFlashに渡してくれます。
あとは別のHTMLページのリンクを、

<a href="flash.html?content=1">コンテンツ1</a>
<a href="flash.html?content=2">コンテンツ2</a>
<a href="flash.html?content=3">コンテンツ3</a>

と書けば、リンクをクリックしたときにFlash変数を受け取って該当のコンテンツから再生されます(もちろんここで触れてないですが変数を受け取った後のFlash内の処理もActionScriptで書かないといけませんけどね)。

とまあここまでなら日記に書くことはないですが、今日仕事で変な現象に出会いました。上記のように作ったページがInternetExploreでは正常に再生されたのですが、FireFoxで見てみると白い画面(背景色)で固まってしまいました。

そのときは仕事の締め切りが迫っていてかなり焦りまくりました。
で、結局何が原因だったかというと、こんな感じでした。

[ 推測できる原因 ]
Flash全体の容量が不明のため読み込み状態が続いてしまう

途中から再生するために、始めに読み込むべきFlash全体の容量がわからなくて処理がつまずいていたようです。IEはそこらへんをうやむやに処理したらしく再生できたようでFFは止まってしまいました。

[ 対処法・解決方法 ]
ムービーの最初にプリローダをつけてロードが完了したら該当のコンテンツにジャンプするようにActionScriptを書く

全体の容量がわからないのであればわかるようにプリローダーをつけてあげればいいだけの話でした。ここでカンタンに書いておりますが原因究明にかなり時間使っちゃったよぅ・・・。

タグ:

関連アイテム

 

Flashの表示スケールをサイズ内に縮小拡大させて納めるかどうかのプロパティ

070613

こんにちは、なかわけです。

今日仕事で発見したことを覚書き。
例えばFlashを300 x 300のステージサイズで制作してhtmlで200 x 200で表示したいときに、widthとheightをそれぞれ200に設定すればいいのですが、その際にうまく表示させるために<object>タグでは<PARAM NAME=scale VALUE=showall>というプロパティが、<embed>タグではscale="showall"というプロパティがあります。

パラメータも4種類あります。
showall [すべて表示]縦横比を維持し指定サイズ内にムービー全体を表示
noborder [枠なし]縦横比を維持し指定サイズ内にムービー全体を表示
exactfit [フィット]ムービーの縦横比が変化し指定サイズに収まるように表示
noscale [拡大/縮小なし]Flashムービー内で指定されているサイズで表示 指定サイズがFlashステージサイズより小さい場合は表示が見切る

また、設定を省略すると「showall」を指定したことと同じになります。

今回も設定がnoscaleになってるのに気付かずに1日悩んだぜ!くそ!勉強になった!

タグ:

関連アイテム

 

loadMovie()とsetMask()を同時に使う方法

070618

こんにちは、なかわけです。

loadMovie()とsetMask()を同時に使う方法については、改めて
外部からswfを読み込んで同時にsetMask()でマスクする方法にまとめてあります!そちらを参考にしてください。



今日も仕事中に発見したことを忘れないうちに覚書。今日の発見はすごいです。
というか今までこの問題に遭遇しなかったのか不思議です。もしくは遭遇していて違う対処法をしていたのでしょうか。
いずれにせよ、今日の発見はなんとなくすごい。

FlashでloadMovie()関数を使うと、外部のswfやjpg画像などを読み込めます。
▼こんな感じ

myClip.loadMovie("画像のパス");

そうするとムービークリップ「myClip」に画像なりswfなりが読み込まれます。
でこのあとにmyClipにマスクをかけます。
▼こんな感じ

myClip.loadMovie("画像のパス");
myClip.setMask(maskClip名);

するとあら不思議。マスクかかりません!

これはいったい・・・・?

ちゃんとした答えはわかりませんが、いろいろ調べてみてなかわけ的には以下のように解釈しました。

[ なかわけの解釈 ]
loadMovie()は関数でsetMask()はメソッド。
loadMovie()関数を実行したあとでは、setMask()メソッドは有効にならない(設定が変更できない)。

はい。現象を確認しただけではなんの解決にもならないので、見つけた解決方法を以下に書いておきます。

[ 解決方法 ]

myClip.loadMovie("画像のパス" ,setMask(maskClip名));

Flashのヘルプを見ると、loadMovie()のパラメータには画像のパスと、ターゲットと、メソッドというのがあります。通常メソッドにはGETかPOSTが入るようですが、setMask()も同じメソッド扱いとなり受け付けてくれるようです。

なんとなく腑に落ちない感じはしますが、これでいけるようです。あー今日も勉強になった。

タグ:

関連アイテム


 

FLVオブジェクトとSoundオブジェクトの同時操作のバグ

070720

こんにちは、なかわけです。

今日は、FLVオブジェクトとSoundオブジェクトの同時操作のバグについてです。ちなみに解決してませんw。

簡単に説明すると、音楽と映像を同時に再生するムービーでBGMを止めるとFLVムービーも止まってしまうというバグです。

具体的には、rootレイヤーに下記スクリプトを書いてBGMを流します。

var mySound = new Sound();
mySound .attachSound("BGM");
mySound.start();

そのあとに同じくrootレイヤーに下記スクリプトを書いて、再生ボタンを音楽を止めてムービーを再生します。

my_FLVPlybk.playPauseButton = my_plypausbttn;

//再生されたときの処理
var listenerPlayObject:Object = new Object();
listenerPlayObject.playing = function(eventObject:Object):Void {
mySound.stop();
}
my_FLVPlybk.addEventListener("playing", listenerPlayObject);

上のEventを日本語にすると、addEventListenerでFLVが再生されたら、mySound.stop();を実行すると書いてあるのに、これをプレビューすると音楽もFLVムービーも一緒に止まってしまいます。

Flashに関しては、以前からSoundObject関連でバグがありましたが、どうやらObject全体でバグがあるようです。
【関連記事】ボリューム0でSound.loadSound()すると100に戻しても音が聴こえない

今回の場合は、EventListenerで処理をせずに、「my_plypausbttnをクリックしたらmySound.stop();してその後にFLVムービーを再生」と記述すればうまくできました。
でも、このバグをかかえてる限り、FLVを再生中に途中から音楽を再生したり停止したりということができません。
たぶん、回避方法はあるようですが研究が必要です。

もし、だれかうまい回避策を知ってる人がいましたら、コメントください。

タグ:

関連アイテム

 

外部からswfを読み込んで同時にsetMask()でマスクする方法

070927

こんにちは、なかわけです。

だいぶ前の話になりますが、ちょっと時間があったので(入院中暇だったので)、dsko0 さんからアドバイスいただきましたMovieClipLoaderを使って、外部から読み込んだswf(jpgなどの画像でも)に同時にsetMaskでマスクをかけるFlashを製作してみました。この記事の話です。なかわけ初のサンプル付きです。

まず、サンプルはこんな感じです。

ダウンロードデータはこれです。どうぞ。
moviecliploader.zip

ActionScriptは基本的にヘルプのままですが、サンプルデータにはなかわけの解説が付いています(解説があっているかどうかは保障しませんw)。以下のスクリプトは要点だけまとめただけのものです。

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("neko.jpg", container);
function onLoadInit(mc:MovieClip) {
   mc.setMask(mcMask);
}

とまあこんな感じですが、なんかあったらコメントください。わかる範囲でサポートします。

タグ:

関連アイテム

 

FLVPlaybackコンポーネントのよくわからないファイルパスの仕様

080111

こんにちは、なかわけです。

仕事中に発見したFlashのFLVPlaybackコンポーネントのよくわからないファイルパスの仕様についてのメモです。
ほんとに意味わかんなくて数時間苦しんだよ。
なぜ、ソースのflvとスキンのswfのパスを違うように書かないといけないのか謎です。

まず、ファイル構成はこんな感じです。
index.htmlにはmovie.swfを読み込むように記述してあります。

ファイルのディレクトリ

で、なんでか、FlashのFLVPlaybackコンポーネントのパラメータは
以下のように設定するとうまくいきます。

FLVPlaybackコンポーネントのパラメータ

swfやflvはすべてimageフォルダに入れているので、flvのパスは
image/source.flv
になりそうなものなのに、なぜか
source.flv
でうまくいきます。

それで、flvを操作するスキンのswfのパスは
skin.swf
ではなく
image/skin.swf
でうまくいくのです。なぜ!

ほんとに謎です。
なぜこんな仕様なのか。
誰か教えてください。

タグ:

関連アイテム

 

カレンダー

2013年5月
Sun Mon Tue Wed Thu Fri Sat
      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 31  

クリエイティブ・コモンズ

このブログは、次のライセンスで保護されています。

クリエイティブ・コモンズ・ライセンス

Googleの画像広告