またまた今更ながらの備忘録メモ。FlashPlayer8から使えるようになったBitmapDataクラスによって、動的にフィルターをかけたり、グラデーションのついたマスク表現などを使えるようになりました。
が、フィルターやグラデーションマスクといった機能、サイズ(ファイルサイズではなく、width x heightのサイズ)の大きな画像やオブジェクトに対しては効きません。具体的には、対象となるオブジェクトのwidthまたはheightが2880ピクセルを超過すると、こうした機能が無効になります。
で、その詳しい理由については下記のURLが詳しい:
Flash 8 のイメージ API の概要 | デベロッパーセンター
該当する部分の引用:
メモ : Flash Player では、ビットマップの最大サイズは幅、高さいずれも 2880 ピクセルに制限されています。この制約よりも大きい BitmapData インスタンスを作成しようとすると、ビットマップは作成されません。これは、クライアントの RAM を使い切るような Flash ムービーを作成できないようにするために設定されています。2880 × 2880 ピクセルのビットマップには、約 32 MB 程度の RAM が必要です。
残念ながらFlashPlayer10でもまだこの点についての変更は無い模様。なぜこの記事を書いてるかというと、今現在この問題で引っかかってるため。さて、どうして回避したものか・・・。
<追記>
kaedeさんからコメントで情報いただきましたが、FlashPlayer10からはBitmapDataサイズの制限が拡大されていますね。
BitmapData – ActionScript 3.0 言語およびコンポーネントリファレンス
当該部分を引用:
AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さが 8,192 ピクセルで、ピクセルの総数は 16,777,216 を超えないようにする必要があります(したがって、BitmapData オブジェクトの幅が 8,192 ピクセルの場合、高さは 2,048 ピクセル以下にする必要があります)。Flash Player 9 以前および AIR 1.1 以前では、高さの制限は 2,880 ピクセル、幅の制限は 2,880 ピクセルです。幅または高さに 2880 より大きい値を指定すると、新しいインスタンスは作成されません。
なるほど、8192 x 8192ピクセル、ってのはダメなんですね。で、改めて今回作業してるファイルを見ると、cacheAsBitmapかけようと思ったインスタンスの横幅が9600ピクセル・・・。そ、そりゃあダメですよね。
Firefox3.6になってから、フルFlashサイト(ブラウザ領域の横100%x高さ100%にFlashコンテンツを表示しているサイト)で、「Flash領域をクリックすると余計なスクロールバーが表示される」という問題が出るようになった件、解決策を見つけました!
(続きを読む…)
All-in-one gesturesが、以前と同じく、開発者のサイトの方でFirefox3.6に対応するようになっていたこと、また、HttpFoxがもし使えなくても、Firebugの「接続」タブで代用できそうだと思ったので、あらためてFirefox3.6を導入!
・・・してみたら、あれ?HttpFoxのアイコンが出てる。

試しにクリックしてみると、ちゃんと動作する。はて?前回試したときからのこの数日間で対応したのかな?まあいいや。というわけで、HttpFoxもそのまま使えて、晴れて3.5の時と同じアドオン環境になりました。
でもって、今のところ気が付いた点。
(続きを読む…)
「addEventListenerの書き方の定番」や「ステージのインスタンスを自動宣言」と同じような、備忘録を兼ねたas3メモ。
as3で他ページへのリンクを実装する場合、通常はnavigateToURLメソッドが使われます。
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
public class Main extends MovieClip {
btn.addEventListener(MouseEvent.CLICK, onBtnClick, false, 0, true);
}
public var btn:MovieClip;
public function onBtnClick(e:MouseEvent):void {
var url:String = "http://www.tonpoo.com/";
var req:URLRequest = new URLRequest(url);
navigateToURL(req, "_self");
}
}
(続きを読む…)
別ドメインにある画像やxmlを読み込んで処理するswfコンテンツの制作中。ポリシーファイルが必要なのはわかっていたので、画像やxmlの置いてあるサーバー(http://www.sample.server/)のルートに下記のcrossdomain.xmlを設置。
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="true" />
</cross-domain-policy>
でもって、swfの方から上記サーバーのrss(http://www.sample.server/rss.php)を読み込んだ所、問題ナシ!
続けて、JPEGファイルを読み込み、BitmapData.draw()で描画しようと思った所:
セキュリティサンドボックス侵害 : BitmapData.draw:http://www.tonpoo.com/hogehoge/foobar.swf は http://www.sample.server/images/photo.jpg にアクセスできません。ポリシーファイルが必要ですが、このメディアがロードされたとき、checkPolicyFile フラグが設定されませんでした。
あれえええええ?
おかしいなと思って調べてみたら、出てきた:
AS で別ドメインの画像を読み込むときの注意点 – てっく煮ブログ
クロスドメインポリシーファイルは設置してるけどなあ、と思いながら読んでいると下記の記述:
これ以外に、Security.loadPolicyFile() メソッドを使って、事前に読み込んでおく方法もある。
これだこれだ!というわけで早速リファレンスを参照。
Security – ActionScript 3.0 コンポーネントリファレンスガイド
でもって下記の記述を追加(www付きの場合とナシの場合と両方対応するように両方を併記)。
Security.loadPolicyFile("http://sample.server/crossdomain.xml");
Security.loadPolicyFile("http://www.sample.server/crossdomain.xml");
そしたら無事解決!
crossdomain.xmlを用意しただけで安心してちゃいかんですね・・
ああ腹立たしい!!ActionScript3での開発もそれなりにやってきてるというのに、今でも結構単純な作業を行うのに思い通りにいかず、ストレスを感じることがあります。
今回は「ステージのインスタンスを自動宣言」について。
(続きを読む…)
窓の杜で下記の記事を発見。
窓の杜 – 【NEWS】MS、「Meiryo UI」フォントを追加するパッチをWindows Vista/2008向けに無償公開
OSのUI用フォント(デフォルトフォント)としてのメイリオは割と気に入っているので、早速こちらもダウンロードしようと思い立つ。
Windowsの七面倒くさいGenuine Advantageの認証(?)をクリアし、ダウンロードしたファイルはフォントファイルではなくて「Windows6.0-KB975929-x86.msu」というインストーラーファイル。これまた面倒くさいと思いながらもインストール。
再起動を求められたので仰せのままに再起動するも、インストール中であることを告げる画面のフォントやログイン画面のフォント、果てはログイン後のデスクトップアイコンのフォントに至るまで、その全てがあの忌々しい「MSゴシック」に!
「なんじゃこりゃ!」と思ってデスクトップアイコンをクリックしてみるとたちまちフォントがメイリオに変更。スタートボタン中のメニューもメイリオのままなので、メイリオ自体が無くなったわけではない模様。
気持ち悪いので改めて手動で再起動したところ、ログイン画面のフォントがメイリオに戻っていることを確認。「ああよかった」と胸をなで下ろし、エクスプローラーを開いたりWEBブラウザを開いたりしていると・・・ん?何かおかしい??何だろう・・・・・・。
あ、メイリオの行間が詰まってる!

あれ?なんかもっと行間空いてたはず・・・。エクスプローラーのフォルダーツリー部分のアイコン表示もなんかヘン・・・。
これってMeiryo UIをインストールしたことに起因するバグ?それとも、実は今までがおかしくて、これで正常になったとか?
まあ、とりあえずアプリのメニューとかも表示が詰まって便利になった面もあるので、違和感ありありだけどしばらくこれで使ってみましょう。
<追記>
下記のページに表示されているVistaのエクスプローラーのスクリーンショットと比べてみると、やっぱり明らかに行間がおかしい!むー、やっぱり今の状態はバグってるってことなんだろうか。
Windows 7 のエクスプローラー
<さらに追記>
上記の状態がどうにも気持ち悪かったので、「バックアップと復元センター」というやつで、Meiryo UIインストール前の状態に戻してしまいました。もしかしたら別の不具合を起こしたり、あるいはそもそもこのバグも戻らないかもという危惧もあったんだけど、特に問題なく復元できたようで一安心。
窓の杜でPDF作成ソフト「Bullzip PDF Priner」の最新版(7.0.0.928)が紹介されていた。
窓の杜 – 【REVIEW】透かし挿入や暗号化などの機能をもつ無償のPDF作成ソフト「Bullzip PDF Printer」
早速ダウンロードしてみる。
FREE PDF Printer
すると、設定画面が文字化け。以前にもこんな事あったような・・・と思いながらググって見たところ、下記の記事がヒット。
Rappazubon:最新のBullzip PDF Printerはメニューが文字化けしとる – livedoor Blog(ブログ)
こちらのページ中にある「文字化け対策.zip」をダウンロードし、中にあるlabels.txtを、C:¥Program Files¥Bullzip¥PDF Printer¥labels.txtと置換。さらに、自分のマシンはVistaなので、C:¥Program Files¥Bullzip¥PDF Printer¥gui.exeを右クリックして「プロパティ」を選択、「互換性」タブの「互換モード」の欄で、「互換モードでこのプログラムを実行する」にチェックを入れ、「Windows XP (Service Pack 2)」を選択し、「適用」をクリック。
以上の作業で、メニューの文字化けは解消!ほっ。
つい数時間前に投稿したばかりだけど、日付も変わって正式に公開されたので、早速Firefox3.5を導入!やはり前評判ほどJavaScriptの処理速度の向上などは今のところ感じられないものの、細かなUIの変更などもあって割合いい感じ~。
・・・と思ってたんだけど、肝心な問題が。お気に入りの「All-in-one Gestures」をはじめ、アドオンの一部が対応してない!

むう、All-in-one Gesturesだけでなく、HttpWatchやWeb Developerもダメか・・・。この3つが使えないというのは厳しいなあ・・・(汗)。
【2009/7/3追記】
All-in-one Gesturesについて、Firefoxの公式アドオンページでは更新されてないけど、開発者のホームページの方で更新されてました!やったー。
Safari4の文字化けの件、検索してみたら同様のケースを発見。
Safari 4 メニューの文字化け解決策 : せつないぶろぐ
「メニューの文字化け」ではないものの、上記記事中の方法を試してみた。すると・・・

無事に解決しました!よかった・・・。