Flex SDK 4.5 でこんな警告文が出たら

記述 リソース パス ロケーション タイプ
SWC “/Applications/Adobe Flash Builder 4.5/sdks/flex_sdk_4.5.1.21328/frameworks/libs/framework.swc” には、スタイルのデフォルトが設定されていますが、この SWC は library-path 内にあるので、依存関係がスタイルなしでリンクされます。そのため、出力 SWC を使用するアプリケーションのスキンが欠落する可能性があります。SWC を external-library-path に置いてください。 不明 Flex の問題


解決方法
ライブラリプロジェクト右クリック→プロパティ→Flexライブラリビルドパス→ライブラリパス→フレームワークのリンク
デフォルトを使用する(外部)に設定する

備考
binに書きだされるSWCのファイルサイズが小さくなります。
参考リンク
http://www.actionscript.org/forums/archive/index.php3/t-263069.html

Android を PC に接続するときの注意

Burrito から IS06 でデバッグしようとしたところ、どうにもこうにもデバイスが接続されないという問題に遭遇しました。
Android SDK を入れた状態で、ターミナルを起動して

$ adb devices

とかやってもなんも接続されてない状態で、ココとこココとかココとか見ながら色々やってみました。


結論として、色々見たことろは何も関係なく、単純に USB を接続する場所は PC 本体じゃないとダメってことでした。
僕の環境は MBP + Cinema Display + 外付けキーボードなんですが、この外付けキーボードの USB ポートに IS06 を接続していました。
これをきちんと本体に接続しなおしたところ、無事認識されました。

CS5 のアクションパネルができる子になったなーと

CS5 のアクションパネルを試すために以下のコード書いてみました。
若干 control + space が重いけど、普通にできる子になっていて感動。

import flash.display.Sprite;
import flash.display.Graphics;
import flash.utils.Dictionary;
import flash.events.MouseEvent;

var dict:Dictionary = new Dictionary(true);

var i:int = 0;
var l:int = 5;

for (i; i < l; i++)
{
	// button 作るよ
	var button:Sprite = new Sprite();
	var g:Graphics = button.graphics;
	
	g.beginFill(0);
	g.drawRect(0, 0, 50, 10);
	
	button.x = i * (button.width + button.x + 10);
	addChild(button);
	
	// button に click event 登録するよ
	button.addEventListener(MouseEvent.CLICK, onClick);
	
	// click したときの callback を設定するよ
	var callback:Function = clickCallBack;
	// button に情報を関連付け
	dict[button] = {
		index : i,
		callback : callback
	};
}

function onClick(e:MouseEvent):void
{
	var button:Sprite = e.target as Sprite;
	var info:Object = dict[button];
	
	info.callback(info.index);
}

function clickCallBack(index:int):void
{
	trace("message" + index);
}

Flash Builder 4 Premium でデバッグプレイヤーが起動できなくなった!

[環境]
OSX 10.6.4
Flash Builder 4 Premium
Web Premium CS5
Flash Player Debugger 10.1.52.14

Flash Builder 4 Premium がインストールされた状態で CS5 をインストールしたところ、突然 FB のコンソールが立ち上がらなくなりました。デバッグしようとすると、デバッグ版ではなくノーマルの Flash Player が起動してしまいデバッガがタイムアウトします。これではデバッグできず、仕事になりません。

どうしたもんかなと色々試していたら解決できたので情報共有します。

http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=2907
このページによると、IPv6(::1) でローカルホストの名前解決できていないのが原因かもしれないとのこと。localhost の hosts を IPv4 (127.0.0.1) に設定してやることで解決できました。

詳細手順は以下の2通り。
———————————-
・/private/etc/hosts を直接編集する
IPv6のエントリをコメントアウトするか、IPv6の下にIPv4を書く。

・hoster 等を使用して設定する
新規で 127.0.0.1 localhost を設定してやる。
———————————-
最初前者で設定したのですが、後者のほうが簡単に設定できるのでおすすめです。



そしてここからが重要なのですが、これを設定したことにより ActionScriptProject をプロファイルできるようになりました!

Mac 版 FB では ActionScriptProject はプロファイルできないというステキ仕様だったわけですが、どうやらこれが原因だったみたいです。
まさか FlashPlayer と hosts にそんな因果関係があったとは・・・。

Ameba Pigg でカジノエリアリリース!

6/17 にカジノエリアがリリースされました!
いつか作りたいと思っていたルーレットに携わることができて感無量です!
ピグみたいな BtoC コンテンツはユーザーの反応がダイレクトにみれていいですね。

よかったら遊んでみてくださいー。
http://pigg.ameba.jp/

Mac でアプリケーションを多重起動する方法

備忘録

ターミナルで以下のコマンド入力

$ open -na [アプリケーションまでのパス]




[ example ]

・Safari
$ open -na /Applications/Safari.app

・Flash Builder
$ open -na /Applications/Adobe\ Flash\ Builder\ 4/Adobe\ Flash\ Builder\ 4.app

こっそりトップページ更新

こっそりとトップページを更新しました。
前のは無駄に Tweensy とか使ってあったり、更にはなぜか Tweener も併用していたというよく分からん構成になっていたわけですが、いい加減書きなおそうと一念発起した次第です。トローンとした感じはうまくできたかなーと思います。ただ満足できてない部分もあるので、今後もバージョンアップして行こうと思います。

ソースはこちら

フレームラベル名入力でジャンプする jsfl

タイムラインアニメーションやってると、フレームの行き来がめんどくさいですよね。
フレームラベル名入力でジャンプできる jsfl とかないかなーとググッたんですが、見つからなかったので作りました。

【使い方】
1. 下記のコードをテキストエディタにコピペして、 “jumpToFrameLabel.jsfl” という名前で保存。


// タイムラインを取得
var timeline = fl.getDocumentDOM().getTimeline();
// 選択中のレイヤーを取得
var selectedLayer = timeline.getSelectedLayers();
// ジャンプ先のフレームラベル名を入力
var targetLabel = prompt("input jump to frame label", "");
// 入力されたフレームラベルが存在するかどうかの判定用
var found = false;
// 走査するフレーム数
var l = timeline.layers[selectedLayer].frames.length;
// 目的地のフレーム番号
var n = 0;

// フレームラベルを 1 フレームずつ走査
for(var i = 0; i < l; i++) {
	if(targetLabel == timeline.layers[selectedLayer].frames[i].name) {
		n = i;
		found = true;
		break;
	}
}

if(found) {
	// 目的地へジャンプ
	timeline.setSelectedFrames([0, n, n + 1]);
}else {
	// エラー処理
	fl.trace("not found");
}


2. /Users/ユーザー名/Library/Application Support/Adobe/Flash CS4/language/Configuration/Commands に入れる。
( win は Document and Setting\Application Data とかそんな感じのとこに同じような階層があります )

3. 以下実行手順
・フレームラベルのレイヤー選択
ss1

・コマンド実行
ss2

・フレームラベル名入力
ss3

・ジャンプ!
ss4


以上!
注意点は 1 フレームずつ走査するので、数 1000 フレーム超えたりしてると処理が重くなります。最悪 Flash が落ちるかも?
改善案あったら教えてくださいー。

MovieClip のインスタンス名を一括設定する jsfl

こういう jsfl があるのを教えてもらいました。
Instance_setMcName.jsfl

これの機能はレイヤーに配置してある MovieClip のインスタンス名をライブラリのシンボル名に一括変更してくれるという優れものです。キーフレームがあろうがなかろうが関係ないので便利だなーと思ったのも束の間、ライブラリをフォルダ分けしてある場合はインスタンス名に “フォルダ名 / シンボル名” というように階層まで書かれてしまいます。

これではあまり使えないなと思い、少し改造してみることにしました。シンボル名に置き換えるのではなく、自分で入力した文字列に置き換えるようにすればいいんじゃねと思って調べる内に下記のメソッドを発見しました。

prompt("", "")

これを実行すると、ポップアップでテキスト入力フィールドが出てきます。第 1 引数はポップアップウィンドウに表示する説明文、第 2 引数はテキスト入力フィールドの初期値です。例えば以下を実行すると画像のようになります。

prompt("input instance name", "hogehoge")

ss1
ではこれを Instance_setMcName.jsfl に組み込みます。

//=====================================================	
// Instance : setMcName1.0
// hisayuki takagi | www.wildcard.jp.org
//=====================================================	
var cur_doc = fl.getDocumentDOM();
var str = prompt("input instance name", "");
for(var i1=0; i1<cur_doc.selection.length; i1++){
	if(cur_doc.selection[i1].elementType == "instance"){
		cur_doc.selection[i1].name = str;
		//cur_doc.selection[i1].name = cur_doc.selection[i1].libraryItem.name
	}
}

【使い方】
/Users/ユーザー名/Library/Application\ Support/Adobe/Flash\ CS4/ja/Configuration/Commands/ に入れます。
そして画像のように設定したあと、レイヤー名のところをクリックし、コマンド -> Instance_setMcName を実行すると、レイヤーに配置されたインスタンス名を一括変更できます。
ss2

以上!

trace をターミナルで見るときの文字化け解消

ずっと悩まされ続けていた問題をとうとう解決できました!

ターミナル > 環境設定 > 設定 > 詳細タブ > 言語環境設定 > 日本語 (Mac OS)

ss

trace 文の出力の仕方はコチラ
※デバッグ版の Flash Player 必須

Return top