05-27-10

5月27日までAdobe Creative Suite 4 Web Standardを買っておこう!

明日に迫ったAdobe Creative Suite 5。Adobe Creative Suite 4シリーズがAdobe Storeで購入できるのは今日までとなってしまいました。CS5発表の時に話題となった一番安くCreative Suite 5 Web Premiumを購入する方法をおさらいします。

Creative Suite 5 Web Premium購入までの流れ

1.Dreamweaver CS4 をダウンロード購入します。49,875 円

2.Creative Suite 4 Web Standardにアップグレードします。75,000 円

3.Creative Suite 5 Web Premium無償アップグレード申請をする。0円

4.111,375円お得!!

CS5ではWeb Standardが廃止され、Web Premiumに統合されました。新規でCS5 Web Premiumを購入すると236,250 円かかりますが、この手順で購入すると124,875円で111,375円お得です。もちろん、既にCS4をもっている方は普通にアップグレードすれば遠回りする必要はありませんが、CS3からのアップグレードするかたは、128,000 円なので、3,125円お得です。

「んじゃそれぐらいのお金やったらええわー!」ってなるかもしれませんが、Flashという曲者アプリを思い出してくださいw flaファイルのバージョンを落として納品して欲しい。と言われたことがあると思います。そうすると、CS3からCS5にアップグレードしてしまうとCS4が抜けている為、今後CS5で保存したflaファイルをCS3に落とすことができなくなってしまいます。

CS4も手に入って、かつFlashの下位バージョンも手に入る。たぶん、これはすごくお得だと思います。
CS4の購入は5月27日今日までなのでお忘れなく!!(ボクはもう買いました)

>>新製品・新バージョン発表後の無償アップグレードポリシーについて
http://kb2.adobe.com/jp/cps/740/740.html

05-21-10

Papervision3D本語 リファレンスガイド

ActionScriptで3DCGアニメーションや3Dゲームを作るために欠かせない、Papervision3Dの日本語ドキュメントが公開されてましたのでメモします。

Papervision3D™ 2.1 日本語 リファレンスガイド
http://papervision3d-jp.googlecode.com/svn/trunk/docs/index.html
papervision3d-jp(プロジェクト)
http://code.google.com/p/papervision3d-jp/

04-13-10

Flash制作者とWebディレクターがよくするやりとりFAQ

Q.納品されたswfファイルが開けません

A.ローカル(StanndAlone)でswfを再生できるFlash Playerは無料配布されてませんので、Flash Playerがインストールされたブラウザにドラッグアンドドロップして確認してください。

Q.ブラウザにswfファイルをドラッグアンドドロップしましたが、サイズが違います。

A.htmlに乗せていないswfファイルは、縦横サイズが指定されていないので、ブラウザウインドウの幅の分だけ拡大します。原寸サイズで確認する場合はhtmlに貼り付けて、htmlから確認してください。

Q.Flash Playerをインストールしているのに、Flashが表示されません!

A.(JavaScriptでswfを表示させている場合)JavaScritpがOFFではありませんでしょうか?swfを表示するために、swfobject.jsというJavaScritpを使用していますので、確認する際にはJavaScritpをONにしてください。

Q.修正したswfファイルが、更新されてないみたいなんですが。

A.swf配信後、更新前のキャッシュファイルが残っている可能性があります。ブラウザのキャッシュを消してから確認してみてください。

Q.外部XMLを更新、配信したんですが反映されません。

A.swfの修正更新ではなく、外部XMLを用いている場合、Flash側でキャッシュ対策がされてない場合があります。Flash制作者へお問合せください。

Q.外部から読み込んでいる画像が表示してません。

A.読み込んでいる画像のURLに直接アクセスしてみてください。そこに画像はありますか?

Q.Flashが出てなくて真っ白です。

A.真っ白いという状況は複数の原因が考えられますので、まず、そのFlashが表示されるはずの真っ白い場所を右クリックしてみてください。Flashのコンテキストメニューが表示されなかったらFlash Playerがインストールされてないか、HTMLの記述に間違いがあります。まずはそこを確認してから他の原因を調べます。

Q.IEではFlashが見れますが、FirefoxではFlashが表示されません(その逆の場合も)

A.見られてないブラウザにFlash Playerがインストールされていない可能性があります。IEとFierfoxとでは、各ブラウザごとにFlash Playerのインストールが必要ですので、見られないブラウザでAdobeのサイトからFlash Playerをインストールしてください。
http://get.adobe.com/jp/flashplayer/

Q.ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されない

A.ブラウザによって「戻る」ボタンの仕様がちがい、全てに当てはまるとは限りませんが、Flashのタイムラインが進んでしまってる状態のまま「戻る」可能性があるので、1フレーム目にXMLや画像を読み込むActionScriptを記述していると、その1フレーム目のActionScriptが実行されていないまま、フレームが進んでいる状態に戻っている可能性が高いと思います。ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されないを参考にしてみてください。

Q.FlashPlayerは潜在的に危険な操作を停止してしまいます。

HTTP環境外、例えばローカルとかからFlashを再生してリンクを確認する時、セキュリティが働いてページ遷移しない設定になっています。FlashPlayerは潜在的に危険な操作を停止しましたの回避策を参考にしてみてください。

04-08-10

Flashに値やパラメータを送る方法まとめ

HTMLにswfファイルを貼り付けてブラウザで見るときに、場合によってはHTMLに書いておいた値やパラメータをFlashの変数に渡してあげたいときがあると思います。Flash内を更新したいときや、ちょっとした汎用性のあるコンテンツを作るときに、Flashアプリケーションがインストールされていない環境でも、Flashの更新をしたりする時に便利です。色々ある方法の中で一番シンプルな方法、swfobjectを使って、ActionScriptにどう書けばいいのか紹介します。

swfobjectを使ってパラメータを設定する場合

swfobjectの使い方はswfobject v2.xの使い方を参考にしてみてください。
Flashコンテンツの背景色を色々変更したいという例えで紹介します。HTMLに書くswfobjectの書き方のイメージはこんな感じにします。

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
<!--
var flashvars = {bgColor: "FF0000"};//←背景色
var params = {allowscriptaccess: "always"};
swfobject.embedSWF("flash.swf", "flashContent", "100", "100", "8", "", flashvars, params,attributes);
//-->
</script>

flashvarsに変数名「bgColor」を書いて、値である16進数の「FF0000」を書いてみました。
ではActionScriptではどのように書くか

ActionScript2.0以下でflashvarsを取得する場合

ステージ全部に収まるシェイプを作って、今回の例では100×100の正方形のMovieClipを作ってステージに配置します。インスタンス名を「bg」としました。第1フレームに下記のActionScriptを書きます。

var color_obj = new Color(bg);// カラーオブジェクトを作成する
var colorStr = "0x"+_root.bgColor;//ここがswfobjectで設定した値が入ります
color_obj.setRGB(colorStr);

厳密なことはわかりませんが、flashvarsに格納した値はFlash上では_rootに宙に浮いてて、それを_root.[変数]にしてあげるとポコ!ってはいる。そんなイメージにしてますボクはw

ActionScript3.0でflashvarsを取得する場合

ActionScript3.0になってから、そんな宙に浮いていた値のイメージが、ちゃんとScriptを書いて値を取りに行くことを書かなければいけなくなりました。swfに渡そうとする変数の値は、LoaderInfoクラスで取得することができます。

import flash.display.LoaderInfo

var params:Object = loaderInfo.parameters;
var bgColorStr:String = params["bgColor"];

params[flashvars]になるので、複数の値を取得する時は名前を指定してあげれば取得することができます。

04-06-10

ActionScript3.0で右クリックのコンテキストメニューを消す方法

ActionScript3.0から、Flash領域内で右クリックしたときに出るコンテキストメニューを非表示にすることができるようになりました。

import flash.ui.ContextMenu;

var menu_mc = new ContextMenu();
menu_mc.hideBuiltInItems();

拡大縮小や描画領域を表示させるのはユーザーの方に見せる必要がないと思い消してもいいと思いますが、コンテンツによってはセキュリティーの設定項目と、Flash Playerとは。のメニューは残しておいたほうがいいかもしれへんなぁーっと個人的には思いました。

03-29-10

ActionScript3.0でローカルやサーバーの時間を取得する方法

ローカルの時間を取得する方法

この辺の感覚はAS1、2とあまりかわらないですね。

var myDate:Date = new Date();
trace(myDate.fullYear);
trace(myDate.month + 1);
trace(myDate.date);
var dayAry = ["日","月","火","水","木","金","土"];
trace(dayAry[myDate.day]);
trace(myDate.hours);
trace(myDate.minutes);
trace(myDate.seconds);
trace(myDate.milliseconds);

文字列を渡して時間を設定する方法

ローカルの時間だと、ユーザーのパソコンの時計にしまいますので、サーバーの時計等を取得して時計を表示させる場合は、下記のパターンのように、new Dateの引数にStringなどを入れることによって正しい時間を表示させることもできます。

var myDate:Date = new Date("Fri, 26 Mar 2010 06:35:19 +0900");
var myDate:Date = new Date("Sat Nov 30 01:20:00 GMT-0800 1974");
var myDate:Date = new Date(1974, 10, 30, 1, 20);

文字列から時間を再設定してから時を刻むサンプル

getTimer()はFlashPlayerが再生し始めた瞬間からの経過時間をミリ秒で取得できる関数です。1000=1秒です。Date.parseは時間をミリ秒単位で表示してくれる関数です。ミリ秒になった数字に1000を足していくこの方法だと簡単に時を刻むことができます。

trace(Date.parse(dateParsed));//1269552919000
var nowTime = Date.parse(dateParsed);

addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(e:Event):void {
	trace(nowTime+getTimer());
	trace(new Date(nowTime+getTimer()));
}

Event.ENTER_FRAMEを使わないサンプル

ENTER_FRAMEで実行させ続けると、どのタイミングで1秒変化したのか分かりにくくナンセンスなので、AS3から使えるようになったTimerクラスを使うと、1秒ごとにカウントしていく。というのが作れます。setIntervalは使いにくかったですからね。。。助かります。ボクはこの方法がベストだと思います。

var dateParsed:String = "Fri, 26 Mar 2010 06:35:19 +0900";
trace(Date.parse(dateParsed));//1269552919000
var nowTime = Date.parse(dateParsed);

var myTimer:Timer = new Timer(1000);
myTimer.addEventListener("timer", timerHandler);
myTimer.start();

function timerHandler(event:TimerEvent):void {
	trace(new Date(nowTime+=1000));
}

03-24-10

FlashPlayerは潜在的に危険な操作を停止しましたの回避策

ローカルでswf再生したとき、またはgetURLやnavigateToURLでページ遷移しようとしたときに、Adobe Flash Playerは潜在的に危険な操作を停止しました。というアラートがでたことあるかと思います。「Adobe Flash Playerは潜在的に危険な操作を停止しました」の回避策とグローバルセキュリティ設定の方法を紹介します。

グローバルセキュリティ設定方法

グローバルセキュリティ設定
Flash Playerヘルプ:グローバルセキュリティ設定パネル
http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html
このページにあるFlash部分の「編集」と書かれているプルダウンメニューの「追加」をクリックして、アラートを出しているswfファイル直接設定するか、フォルダー丸ごと設定するかのどちらかが選べます。すると、「これらのファイルとフォルダを常に信頼する」項目に追加されたと思います。設定はこれで終わりです。ボクはCドライブ全部にかけてます。あまり良くないかもしれませんけどね・・・汗

「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラートは何を訴えているのか

簡単に言うと、ローカルで再生されるswfファイルが、別のページへ遷移するけどいいですか?と聞いてくれてるわけですね。もしそのswfファイルが誰が作ったかわからず、悪意があるswfファイル開いた瞬間にウィルスに感染してしまう。ってことになりえるかもしれません。それを未然に防ぐために、そのswfファイルは信頼できるかどうか。前項のグローバルセキュリティ設定パネルで設定して許可をしたということです。
このアラートが出る条件は以下のときに出ると思います。

・getURLやnavigateToURLなどのページ遷移する関数が書かれているswfファイルを、そのままダブルクリックで再生する
「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラート画面
・htmlファイルにswfを貼り付けたファイルを、ローカルからブラウザで開く
「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラート画面
・ボタンアクションなどでページ遷移しようとした瞬間
Flash Debug Playerが出したエラーログ画面

▼Flash Debug Playerが出したエラーログ

SecurityError: Error #2028: ローカルファイルシステムの SWF ファイル file://C:\hoge.swf はインターネット URL http://hoge.com/ にアクセスできません。
	at global/flash.net::navigateToURL()
	at MethodInfo-404()

▼ActionScript 3.0 コンポーネントリファレンスガイド:ランタイムエラー一覧

http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/runtimeErrors.html#2028

getURLやnavigateToURLでページ遷移しない!ページに飛ばない!と言われたら

そもそもこのアラートが出るだけでもマシかもしれません。アラート自体がでない可能性もあるので、クライアントさんとかに確認してもらってる時に「ページ飛ばないよ」と言われたら、このアラートの可能性が高いと思います。確認出しの方法はいくつかあると思いますが、zipで圧縮してメールで送る場合、ローカルで再生される可能性があるので回避したい。でも、わざわざこの設定をしてもらうのもなんか悪い気がする。。。手っ取り早いのはサーバーにアップして、httpアドレスを直接ブラウザを介して確認してもらいたいところですが、公開してはいけない繊細なコンテンツの場合だと、グローバルセキュリティ設定をしてもらうしかないですね。

03-23-10

Photoshopで編集した画像をFlashに読み込むと色が変化する

Flashに画像を配置した時に、さっきまで見ていた色と違うということがありました。全体的に赤みを帯びていたり、コントラストが強くなってたり。。。原因を調べてみると、画像を編集していたPhotoshopにあることに気がつきました。

プルダウンメニューの「ビュー」⇒「色の校正」にチェックが入ってて、上の「校正設定」が「Windows」以外に選択されてました。画像の見え方は、OSの色の解釈や、画面を見ているモニターの性能によって若干のブレがあるため、この項目で確認したりするためのもので、Flashにインポートするときはjpgかgifに書き出していたため、若干のブレがあり、色が変化しているように見えてたんだとおもいます。ショートカットがCtrl+Yですからね。1つ進むのリドゥと間違えて押してしまったっぽいです笑

Photoshopで編集していた画像をFlashに読み込んだときに、色が若干変化していた時は、ここのチェックをみて、普段作業をするぶんに関しては、チェックを外していたほうがいいかもしれません。

03-22-10

ActionScript3.0でgetURLにかわるnavigateToURL

古のFlashからあるgetURL関数がAS3でなくなっていることに戸惑われた方もいらっしゃるのではないでしょうか。AS3の仕様変更により、URLRequestクラスの変数に、ページ遷移する先のURLテキストを持たせて、navigateToURL関数の引数に渡してあげるとページ遷移します。

var url:URLRequest = new URLRequest("http://creator.cotapon.org/");
navigateToURL(url, "_self");

ボタンで実行する時はリスナー登録したイベントに対して書けば動作します。一回覚えてしまえば簡単ですねー。

btn.addEventListener(MouseEvent.MOUSE_DOWN, btnMouseDown);
function btnMouseDown(e:MouseEvent):void {
	var url:URLRequest = new URLRequest("http://event.rakuten.co.jp/food/bussan/shop/" );
	navigateToURL(url, "_self");
}

03-02-10

FlashLiteで商品検索コンテンツをリリースしました

楽天ウェブサービスの商品検索APIを使って、FlashLiteで商品検索コンテンツを作ってみました。気軽に商品検索をできるように、ブックマークして使ってくださいネ!
FlashLite1.1で作ったので、大半の携帯端末はカバーできていると思います。FlashLite1.1に合わせてAPIを使ったコンテンツってどうやって作ったと思いますか?ふふーん♪ 結構大変でした。。^-^;

このコンテンツの具体的な作り方は後日公開しますのでお待ちくださいー!