2011.09.16 | 

こんばんはムーチョ改めジョーになりそうなムーチョです。
残暑の厳しい週でしたがみなさんいかがお過ごしでしょうか?
今日もCinderネタで行こうと思ったのですが、
お仕事中に「あれ?どうやるんだっけ?」となり、
また忘れそうなのでメモ。

Flashでグラデーションマスクをかける方法です。
本来のやり方なら、ActionScriptを使うんですが、


mc.cacheAsBitmap=true;
maskmc.cacheAsBitmap=true;
mc.mask=maskmc;

俺はタイムライン派なんだぜっ!
という兄貴なやり方を。

(続きを読む...)

2011.08.29 | 

やぁ、どうも。kaminalyです。
Flashの設定について、今日気がついた事があったのでメモメモ

Flashのパブリッシュ設定→スクリプト(ActionScript 3.0)設定にある、
ステージのインスタンスを自動宣言のチェックについて。

以前は、チェックした場合、
たとえばHogeクラスをリンケージで関連付けたムービークリップの中のオブジェクトに名前をつけると、
自動宣言してくれるので、定義をしなくてもコード内で急に使えて、
逆に、定義していないと気持ち悪いと思って定義すると、コンクリフトエラーが出ました。
しかし、CS5の環境ではどうやら改善されているようです。
定義しても、コンクリフトエラーが出なくなっていました。


package
{
	import flash.display.Sprite;

	/**
	 * ...
	 * @author kaminaly at SHIFTBRAIN
	 */
	public class Hoge extends Sprite
	{
		//ムービークリップないのオブジェクトにfugaと名前を付けた場合
		//public var fuga:Sprite;//定義してもコンクリフトエラーにならなくなった。

		//連番で名前をつけたい時、自動宣言しない場合すべて定義が必要だけど、
		//public var fuga_0:Sprite;
		//public var fuga_1:Sprite;
		//public var fuga_2:Sprite;
		//public var fuga_3:Sprite;
		//public var fuga_4:Sprite;
		//非常に面倒。
		//同じ機能なのに、連番オブジェクトの数が違うHogeが複数必要だったりすると
		//Fugaもクラス化してループで生成するとか、手間が増える。
		//自動宣言だと定義しなくてOKなので、かなり楽。
		//定義していない変数が急に使えるのは気持ち悪かったり、
		//補完が効かないのは変わらないけど、ササっと片付けたい作業の場合はかなり有効。

		public function Hoge()
		{
			//定義しなくてもfugaにアクセスできる。
			fuga.alpha = 0.5;

			//補完とか効かせたい場合は、
			//public var _fuga:Sprite; とか別の名前で定義して
			//_fuga = Sprite(getChildByName("fuga"));
			//とかで対応してたけど。ムダが多かった。
			//今は必要な分だけ、定義してあげれば良い。
		}
	}
}

クラスベースで作っている人にとっては、チェックを外して作る方が自然だったけど、
Flashで素材をあらかじめ用意して作りたい場合チェックを入れていた方が楽なので
お手軽に制作時間の削減が出来る。もちろんケースバイケースですが。

前はチェック外して作業してたけど、今はチェック入れた方が良くなってた。
が、一つ注意点があります。
Loaderなどで外部swfを読み込む場合、読み込まれるswfにリンケージ素材があり、
読み込む側でも、そのクラスを知っている(読み込んでいる)と、
ApplicationDomainを指定しない限り読み込む側のクラスが主なので、
読み込む側では定義がないのに、読み込んだ側が勝手にfugaを作ろうとするってんでエラーがでます。
その場合は、ちゃんとクラスに定義してあげる必要があります。

2011.08.23 | 

どうも、kaminalyです。
以前に振り子の不思議を表現しようと思って、
振り子のやつを作ってみた編」というメモを書いたのですが、
不完全のままフォウチプレイを楽しませていただいていました。

そんな事も忘れていたのですが、
今日vimeoをふらふらしていた時にたまたま見つけた空飛ぶスパゲッティモンスター教信者のmemoさんの動画を見て、
その理由がわかったかもなのでリベンジすることにした。

(続きを読む...)

2011.07.06 | 

こんばんわ
Devjamのコータローです。

GoogleがswfファイルをHTML5コードに変換するウェブベースのツール「Swiffy」を公開。
SwiffyはSWF8とAS2.0の一部でFLASH5のほとんどの機能に対応しています。

自分はFLASHはあまり知らないのでボスに聞いてみると、
アニメーションと一部のスクリプトまでの対応のようです。

サポートするのはwebkitベースのSafariやChormeのみ

まぁターゲットはiPhoneやiPadでしょうから、問題はないかと・・・

adobeも変換ツールを提供していますが、違いはswfファイルから変換できること
adobeのはflaファイルからの変換になります。

こちらからswfファイルをアップロードして変換を試せますので興味のある方は是非

コータローでした。

2011.06.25 | 

Event.ADDED_TO_STAGEのバグ?というメモを前にしたムーチョです。こんにちは。
暑くて脳細胞が熱暴走しそうですね。というかしてる気がします。
そんな中、ニューロンがヒートアップなことがあったのでメモ。

A:外部SWFをあらかじめ読み込んでおいて、ステージにaddChildしない。

B:Event.ADDED_TO_STAGEを設定したDisplayObjectをaddChildする。


class b extends MovieClip{
	private var a:Loader;
	public function b () {
		addEventListener(Event.ADDED_TO_STAGE, onAdded);
	}
	private function onAdded(e:Event) {
		addChild(a.content);
	}
}

BをステージにaddChildしたときには、当然Event.ADDED_TO_STAGEが発生するんですが、
Bの中にAをaddChildしても、 BでEvent.ADDED_TO_STAGEが発生するんです。
上のようなソースだと
onAddedでaを呼び出してaddChild

Event.ADDED_TO_STAGEが発生

onAddedでaを(以下省略
という現象になります。

さらに不思議なのが無限ループにはならず、ループは1度だけで終了します。
前回と同じく外部SWFってところが地雷原な感じです。