Results tagged “Flash”

Aug 212012

Chrome上でFlashのデバイスフォントが変更できる件

ブラウザ上で標準フォントや言語属性を検証していたところ気づいたのだけど、Chrome上のFlash PlayerはデバイスフォントがChromeの設定を継承する場合がある。

Chromeの[設定/ウェブコンテンツ/フォントサイズ/フォントをカスタマイズ]の中で[Sans Serif]で指定したフォントがFlash Playerのデバイスフォントに継承される。
ただしこの継承が発生するのはChrome専用Playerの特定のバージョンの場合っぽい。確認したPlayerは一つ。
[user]\AppData\Local\Google\Chrome\Application\21.0.1180.79\PepperFlash\pepflashplayer.dll

開発の人でDebug Playerを独自に入れている場合は従来のデバイスフォントで表示される。
ちなみにFirefoxでは継承は発生せずこれまでどおりのデバイスフォント表示。
PepperFlashってのはChrome V21からのPlayerらしいけど、海外サイトを見てるとCPU負荷や日本語入力(ニコ動?)に問題などがあるっぽい。

ちとこれから先ChromeのFlash Playerが独自の進化をしていくのかよくわからないけれど、デバイスフォントが変更になるのが開発者、ユーザにとってどういう影響を与えるのか見守りたい。

Jun 172012

asにjsを埋め込む

よく忘れて過去のリソースを探るので、こっちにメモ

ExternalInterface.call( scriptSrc);
private const scriptSrc:XML = ;

スタンドアロンで検証したい場合は、確かExternalInterface.availableで代替処理を入れてやれば切り分けることも一応できるとおもう。(そのJS内の処理内容によるけれど)

きちんと整理してパッケージ化したいと思ったまま5年ぐらい放置・・・汗

HTMLの生成はXMLDocumentからXMLに変更になった際にできなくなった気がする。
flex - Flash as3 process XML Doctype Entities - Stack Overflow
回避策はなんとなしに頭の中にあるのだけど、整理する時間がないので、備忘録的にメモ
Adobe Flash Platform * XML 変数の初期化
とか使うと連携が楽そう

Jun 172012

asにjsを埋め込む

よく忘れて過去のリソースを探るので、こっちにメモ

ExternalInterface.call( scriptSrc);
private const scriptSrc:XML = ;

スタンドアロンで検証したい場合は、確かExternalInterface.availableで代替処理を入れてやれば切り分けることも一応できるとおもう。(そのJS内の処理内容によるけれど)

きちんと整理してパッケージ化したいと思ったまま5年ぐらい放置・・・汗

HTMLの生成はXMLDocumentからXMLに変更になった際にできなくなった気がする。
flex - Flash as3 process XML Doctype Entities - Stack Overflow
回避策はなんとなしに頭の中にあるのだけど、整理する時間がないので、備忘録的にメモ
Adobe Flash Platform * XML 変数の初期化
とか使うと連携が楽そう

Mar 062012

Adobe SWF Investigator

Perform quick, comprehensive, analysis of SWF applications

Adobe® SWF Investigator is the only comprehensive, cross-platform, GUI-based set of tools, which enables quality engineers, developers and security researchers to quickly analyze SWF files to improve the quality and security of their applications. With SWF Investigator, you can perform both static and dynamic analysis of SWF applications with just one toolset. SWF Investigator lets you quickly inspect every aspect of a SWF file from viewing the individual bits all the way through to dynamically interacting with a running SWF.

Ref.
Adobe SWF Investigator | Flash security - Adobe Labs
Introducing Adobe SWF Investigator | Adobe Developer Connection

Via.Twitter / @otachan: AdobeがSWF解析ツールを公開と。これセキュリテ ...

Feb 222012

Flash Developで2回目以降のコンパイルがエラーになる

Androidの実装環境を設定したら、Flash Developでコンパイルエラーが出るようになった。
エラーメッセージは

Error: Comparison method violates its general contract!
Build halted with errors (fcsh).

常にという訳ではなく、FDを起動して初回のコンパイルは問題なく実行できる。
そのまま修正などして再度コンパイルすると上記のエラーが発生する。
ビルドを[Debug]<>[Release]に切り替えると、エラーは発生しない。

なので、まぁ都度[Debug]<>[Release]を切り替えつつコンパイルすれば対応は出来るのだけど、面倒くさい。同じ問題は色々発生しているようで、FlashDevelop.org - View topic - Error: Comparison method violates its general contract!にその辺の情報が集まっている。

JDK1.7を入れたことに付随する問題のようだが、Androidの制作環境構築でどこがどうだったかさっぱり思い出せず、Android環境の再構築の手間を考えるとJDK1.7のアンインストールも躊躇してしまう。

色々試しているものの、未だ解決に至らず・・・という状況。

Continue reading Flash Developで2回目以降のコンパイルがエラーになる.

Feb 222012

優先席の近くでは携帯電話の電源をお切りください

HTML5はFlashの3倍重かった! 描画パフォーマンスの比較 | ClockMaker Blog

Flashに比べて遅いというのは、本能的にわかっていたが、計測してもやっぱり遅かったとのこと。
バッテリー消費量やら、サイズの違いによる最適なスペックやら色々要因はあるんだが、HTML5へのシフトはすごい勢いで進んでいる気がする。ま、個人的にはそもそもブラウザじゃないだろという気もしているので、FlashでもHTML5でもどっちでも構わない気もする。

もう1ヶ月ぐらい停滞している。

Sep 222011

Photoshopでflashlog.txtを使用する?

なんだかよく分からないですが、Photoshopを起動するとflashlog.txtにいきなり。

**********Running app: C:\Program Files\Adobe\Adobe Photoshop CS5 (64 Bit)\Plug-ins\Extensions\ScriptUIFlexServer-app.xml
ScriptUI is ready.
Host logging disabled Debug tracing disabled
Finished loading style definitions
なメッセージが現れて、以降Traceできなくなる。
なんぞこれなんぞこれ?
Photoshop立ち上げながらデバッグできないじゃないですか!
なんですかなんですか!

Continue reading Photoshopでflashlog.txtを使用する?.

Aug 082011

disposeしたbitmapDataの確認

embedしたbitmapDataを再度使用したい時、dispose自体はnullにする動作では無いために、bitmapDataインスタンスは存在した状態になっている。つまり

var bmd:BitmapData = new Image();
bmd.dipose();
if(bmd)var bm:Bitmap = new Bitmap(bmd);

ってなやり方では、しれっと何も表示されないので、以下のように例外処理を利用して判定する。

var bmd:BitmapData = new Image();
bmd.dipose();
try {
	_bmd.width;
}
catch (e:Error) {
	_bmd= new Image();
}
var bm:Bitmap = new Bitmap(bmd);

ちなみにdisposeの挙動としては

BitmapData.dispose() は、実際のビットマップデータが占めていたメモリ領域を即時に解放します(ビットマップは最大で 64MB のメモリ領域を使用します)。BitmapData.dispose() を使用した後は BitmapData オブジェクトを使用できなくなり、BitmapData オブジェクトに対して関数を呼び出すと、Flash ランタイムから例外が返されます。ただし、BitmapData.dispose() では BitmapData オブジェクト(約 128 バイト)のガベージコレクションは行われません。実際の BitmapData オブジェクトが占めていたメモリ領域は、ガベージコレクターによって BitmapData オブジェクトが回収された時点で解放されます。
な感じになっている。
ま、今更なんの話だ?っつー感じではあるのだけど・・・

もし汎用的に参照する必要があるのであればgetter化してしまえばいい。

Continue reading disposeしたbitmapDataの確認.

Jul 112011

Molehillメモ

1)MovieClipにisPlayingプロパティが追加になっているので、ProgressionのExMovieClipのisPlayingに"override"追加。

2)JSONクラスがルートクラスで追加されたので、"com.adobe.serialization.json.JSON"を使ってる場合、フルパスに書き直すか、クラスを切り替える。
新しいJSONクラスのメソッドは以下の二つ

JSON.stringify(value:Object,replacer:*=null,space:*=null):String
JSON.parse(text:String,reviver:Function=null):Object

個人的にはメソッド名を同じにしてくれておいてくれればよかったんじゃないかと思うけど。
(com.adobeなんだし・・・)

とりあえず目についたのはこの2つ。
ちょっとExternalInterface周りで少し怪しい感じがするところがあるけれど、そこはおいおい。


3D関係は、もっと詳しい人達のブログを参照してください。

Ref.馬鹿全
Molehill | ClockMaker Blog
cellfusion blog » Molehill のローレベル API で遊ぼう

環境整備は馬鹿全 - FlashDevelop + FlashPlayer11(Molehill) + Away3D 4.0 Alpha での遊び方この辺を参考に。

Feb 262011

managerの違い

SceneLoaderで外部Progressionを子供Sceneに設定した場合、子Progressionの中でのmanagerの参照先が参照場所によって変化します。

簡単書くと
SceneObject@manager > 子Progressionを参照
DisplayObjectを継承したCast系@manager > 親Progressionを参照

シーンはProgressionセグメントのレベルで管理されますが、Cast系はその辺には関与せず、純粋に最上位のProgressionの管理下に置かれるってな感じなのだと思います。

詳しい中身の管理ロジックについてはよく分からないですけど・・。

これ具体的に何が困るかというと、子Progression内で遷移の際の行き先や、出発点によって何かを制御しようとした際に、
getSceneBySceneId(manager.destinedSceneId)
としたときに、SceneObject上では問題ないのだけど、Cast系だと親Progressionを参照してしまうため、SceneObjectを参照できずエラーが戻ってくるという部分です。

なんか便利機能とかあるのかもしれないけれど、判別式で参照managerを切り分けて処理するようにしますた。

Dec 192010

TextAreaへのStyleSheet適応

fl.controls.TextAreaクラス。
納品物として使うことはまずないのだけど、デバッグとかでアウトプット表示に使うことは多々あります。で、そのアウトプットテキストの中にシーン遷移のリンクを入れたりしたい時に、StyleSheetを適応すると便利だろと。

で、以前はTextAreaに"stylesheet"というプロパテイがあった気がするのですが、今見てみると無い。(そのかわり"textField"というプロパティが追加されて、コンポーネント内部のtextFieldが直接参照できるようになっている。

で、textField.stylesheetとしてOKか?と言われるとそんなことは無く、

Error: Error #2009: このメソッドは、スタイルシートを使用するテキストフィールドに対しては使用できません。
at flash.text::TextField/setTextFormat()
at fl.controls::TextArea/drawTextFormat()
at fl.controls::TextArea/draw()
at fl.core::UIComponent/callLaterDispatcher()
こんなエラーが戻って来ます。
基本的にtextFieldで管理するんだから、styleSheet等使うんじゃない!ゴルァ!と言う感じの対応ですが、かろうじて"drawTextFormat"が"protected"なので、extendsで対応することにします。

package display
{
	import fl.controls.TextArea;
	public class ExTextArea extends TextArea
	{
		public function ExTextArea() {
			super();
		}
		
        override protected function drawTextFormat():void {
            if (!textField.styleSheet) {
				super.drawTextFormat();
			}
            else {
                setEmbedFont();
                if(_html) textField.htmlText = _savedHTML;
            }
        }
	}
}
こんな感じでとりあえず使えるようになります。 ただそもそもAdobeが何故StyleSheetを使用不可にしたのか? 致命的に解決できないバグがあるのか?は不明です。

その辺ご了承ください。

Dec 192010

TextAreaへのStyleSheet適応

fl.controls.TextAreaクラス。
納品物として使うことはまずないのだけど、デバッグとかでアウトプット表示に使うことは多々あります。で、そのアウトプットテキストの中にシーン遷移のリンクを入れたりしたい時に、StyleSheetを適応すると便利だろと。

で、以前はTextAreaに"stylesheet"というプロパテイがあった気がするのですが、今見てみると無い。(そのかわり"textField"というプロパティが追加されて、コンポーネント内部のtextFieldが直接参照できるようになっている。

で、textField.stylesheetとしてOKか?と言われるとそんなことは無く、

Error: Error #2009: このメソッドは、スタイルシートを使用するテキストフィールドに対しては使用できません。
at flash.text::TextField/setTextFormat()
at fl.controls::TextArea/drawTextFormat()
at fl.controls::TextArea/draw()
at fl.core::UIComponent/callLaterDispatcher()
こんなエラーが戻って来ます。
基本的にtextFieldで管理するんだから、styleSheet等使うんじゃない!ゴルァ!と言う感じの対応ですが、かろうじて"drawTextFormat"が"protected"なので、extendsで対応することにします。

package display
{
	import fl.controls.TextArea;
	public class ExTextArea extends TextArea
	{
		public function ExTextArea() {
			super();
		}
		
        override protected function drawTextFormat():void {
            if (!textField.styleSheet) {
				super.drawTextFormat();
			}
            else {
                setEmbedFont();
                if(_html) textField.htmlText = _savedHTML;
            }
        }
	}
}
こんな感じでとりあえず使えるようになります。 ただそもそもAdobeが何故StyleSheetを使用不可にしたのか? 致命的に解決できないバグがあるのか?は不明です。

その辺ご了承ください。

Oct 022010

flash developからprojector(.exe)形式の書き出し

flash developとか使っているとどーするのだ?という質問を時々されますけど、swfファイルをflash playerで表示して、メニューから「プロジェクタの作成」で可能なり。

AIRでもいいんだけど、AIR用に書き直ししないといけない部分とか多々あるので、簡単に済ませたいときはこんな感じで・・・。

Macはちょっと分からないけれども・・・

Oct 012010

LoadBitmapData.defaultCacheAsResourceなど無い

最近あまりFlash実装の機会がありませんけれど、唐突にProgression。

LoadBitmapDataのdefaultCacheAsResourceを設定しようとして、
LoadBitmapData.defaultCacheAsResource
とか書いてエラーになって困っていたが、ドキュメントのURLをよくよく見たら、リンク先がsuperClassのLoadCommandになっていたアルヨ。

LoadCommand - Progression 4.0 API Reference

つまりLoadCommandのサブクラスも一括設定ということで、他のサブクラスでCache有効にしたい場合とかは個別インスタンスで設定すべし。
べしべし。

なんか前も似たようなことをやっていた気がするけれど・・・。忘れた。

ちなみにキャッシュ有効にして、LoadCommand.disposeを使用しないで、BitmapDataを直接disposeするとリソース管理が把握できなくてヌルっちゃいます。注意。

Mar 262010

Vector.sort

Vector - Flash CS4 Professional ActionScript 3.0 Language Reference

compareFunctionは
function compare(x:T, y:T):Number {}

a negative number, if x should appear before y in the sorted sequence
0, if x equals y
a positive number, if x should appear after y in the sorted sequence

と書いてあるのだけど、実はint(±1以上?)じゃないと判定してくれない?

Mar 192010

API系の画像取得の際

最近はAPIでGETから画像を取得したりすることがありますが(hogehoge/thumb?id=1234みたいな)、その際にLoadCommand系でアクセスするならcacheAsResourceをきちんとfalseに設定してあげましょう。


1つ目を読み込んだあと、次のデータを読み込むために引数を変更してコマンド実行しても、リクエストを発生させず、completeが発動させ、キャッシュリソースとして格納されているデータを戻してきます。


よく考えれば動作としては至極正常。つまりLoadVarsはResourceの一意性を保証する要素では無いというだけの話。一見不便に思えるがCashBusterなどのことを考えると至極当然。


このResource機能はとても便利なのですがね。元々この手のリソース情報は別途リソース管理用のクラスで管理する方なので、ちと失念していた。これはProgressionの初期化の際にConfigで全体としてONN/OFFとかできてもいいんじゃないかなあ・・って思った。(今は毎回LoadCommand系を全部Offにする必要がある)
※Saqooshaさんからのご指摘の通り、Static propertyの
LoadCommand.defaultCacheAsResource = false;
で設定してあげれば一括設定可能でした。失礼しましたー。


何回読んでも違うデータが出てくるとか、リクエストが発生しないとかそういう場合、ちょっとこれを思い出してみればいい。

Feb 272010

Height Problems in fl.controls.*

プロトタイプやらスケルトンを急ぎで作りたいときに、まれにfl.controls系を使いますが、配置の際に高さの問題がでてきて、いつも忘れてバタバタするのでメモ。

fl.controls系でテキストフィールド(textArea)を内包しているコンポーネントは高さが100pxになる。変数で配置して行く場合など非常にうっとおしいことになる。単体でのheightはoverrideされて見た目の高さを取得できるが、親DisplayObjectのheightは100px。ちなみにgetRectだと単体でも100になる。これはoverrideされていないらしい。(半端だ)

これの原因は大概コンポーネントの中に含まれるtextAreaで、autoSizeがカマされてない素の状態でaddChildされているのかheight=100である。fl.controls.TextInputだと以下のような感じで調整してやれば最適な高さになる。

_inputFld = new TextInput();
inputFld .getChildAt(0).height = 0;

ただfl.controls.ComboBoxとかだと階層化していてめんどくさいので、

var pd:ComboBox = new ComboBox();
_optHeight(pd);
...
private function _optHeight(arg:DisplayObjectContainer):Number
{
	var child:DisplayObject;
	for (var a:int = 0; a < arg.numChildren; a++)
	{
		child = arg.getChildAt(a);
		child.height = 0;
		if (child is DisplayObjectContainer) _optHeight(child as DisplayObjectContainer);
	}
	return arg.height;
}
な感じでやっちゃう。 全部試したことがないので、NGなコンポーネントもあるかも知れないけど。


ということでメモ

Dec 152009

memo

よく忘れるのでメモ
C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\ActionScript 3.0\projects\Flash\src\fl
C:\flex_sdk_3\frameworks\libs

Dec 122009

Query the Loaded Classes

ううーん、ちと欲しいなとおもってググって見つけたのだけど、ちょっとByteArrayの走査の部分が重たそうな気がするなぁ・・

Query the Loaded Classes in Flex / AS3

Source of DefinitionListDemo
AS3 Commons Reflect - Welcome to as3commons-reflect

結局のところ、親はこれらにダイナミックに対応するわけではなく、明示的に指示をだすので、事前把握されてるということが前提と考えると、あえてダイナミックに処理する必要はないんだよなぁ・・。

とすると、どこかラッパーみたいな中でそれらを定義するか、定義自体を外部ファイル化してしまうか?なんだけど、定義自体を外部化しても対してメリットがないのかも・・・。

Dec 062009

昔の

自分の書いたコードを見ていると
結構
赤面
したりする

赤面しつつも
あぁ
まだ
俺は
進化
してるんだな

感じて
ちょっと
安心
したりも
する。

微妙な
お年

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  

Search and Archives

Tags