円高ですね。
最近輸入物の果物とかの恩恵を受けているbeshinです。
と、いうわけでTweenMaxやTweenLiteの有償版、ClubGreenshockを購入してみました。
無償版と比べていくつかプラグインの機能追加されているのですが、とりあえず、よく使いそうなdynamicPropsとtransformAroundCenterを紹介してみようと思います。
まずは、dynamicProps。
Tween系のエンジンって、どこどこまで何秒かけてっていうのが基本なので、最終のどこどこの値が動的に変化するアニメーションには使えなかったりしますね。(あんまり無いけど)
わかりやすい例でいうと、画面のサイズが変わったときとか、マウスを追いかけるとか、例外的な処理を書いて、アニメーションをスキップさせたりして対応していたのですが、このdynamicPropsを使うと、うまいことやってくれるみたいです。
TweenLite.to(mc, 1, {
dynamicProps: {
x:this.mouseX
,y:this.mouseY
}
});
private function _getX():Number {
return stage.stageWidth / 2;
}
private function _getY():Number {
return stage.stageHeight / 2;
}
注意しないといけないのは、ゴールとなる値をFunction型で指定しないといけないことくらいです。ろくにドキュメントを読まずに、適当にやっていた僕は、しばらく悩みました。ドキュメントは大事です。しっかり読みましょう。
次に、transformAroundCenterです。
通常、Flashって基準点があって、それを基準に移動とか、回転とかをするんですが、transformAroundCenter使うと、インスタンスの中心を基準にいろいろな変形処理をやってくれます。
TweenLite.to(mc, 1, {
transformAroundCenter: { x:stage.stageWidth / 2, y:stage.stageHeight / 2 },
ease:Quad.easeOut
});
さらに、transformAroundPointというのがあって、任意の点を基準に動かしたりということも出来ます。
ただ、このtransformAroundCenterですが、使えるプロパティが限られてます。TransformAroundPointVarsのプロパティがそれにあたります。
scaleX:Number、scaleY:Number、rotation:Number、width:Number、height:Number、shortRotation:Object 、x:Number、y:Number
実は、この二つを組み合わせることができると便利そうだなと思っていたのですが、そんな感じの事情でうまくいきませんでした。
後から知ったんですが、flパッケージにある、MatrixTransformerクラスを使っても同じようなことが出来るみたいですね。
任意の点で回転させるサンプル。
var mat:Matrix = mc.transform.matrix;
MatrixTransformer.rotateAroundExternalPoint(mat, 任意のX座標, 任意のY座標, 回転);
mc.transform.matrix = mat;
というか、やり方としてはこれで求めたmatrixをdynamicPropsでTweenさせればいいんじゃね?という話になりますね。
ライブラリ依存しまくりな今日この頃ですが、ちょっとした時間も惜しいときとかにいかがでしょうか?
円高の今がチャンスですよ。
こんにちわ。あいかわらず確変継続中でサイコロ当たりまくりのbeshinです。
いろいろネタは溜まっているので、ちょっとずつ投下していきます。
僕みたいなへっぽこASerがコード書くと、簡単な処理でもなぜかif文だらけになったり、動くけどすごく複雑になっちゃったり、そういうことって多々あります。
でも案外便利な関数が用意されていて、それらをちょっと応用することで、すごく簡潔に書けることってたくさんあるんですね。
毎回過去のコードを参照してコピペするのが面倒くさくなったので備忘録としてメモっておきます。
■一定の数までカウントがアップすると0に戻る(下の例だと5まで行くと0にもどる)
this._count = (this._count + 1) % 6;
■範囲の限定(0~100まで)
var max:Number = 100;
var min:Number = 0;
this.x = Math.max(min,Math.min(max,this.x));
■配列の値がすべて同じであるかどうか(数値限定)
最大値と最小値を出して比較
最大値
arr.sort(Array.NUMERIC)[arr.length-1];
最小値
arr.sort(Array.NUMERIC)[0];
■配列の複製
var arr:Array = [10, 8, 9, 5, 2, 3, 4, 6, 7];
var arr2:Array = arr.slice();
sliceは配列の一部を切り取って、別の配列として返す。
■テキストフィールドのアルファ
Flashフォントの埋め込みをしないと、テキストにアルファがかからない。と思っていました。
blendMode = BlendMode.LAYER;
TextFieldの親コンテナにBlendMode.LAYERを指定すると、普通にいける。
via:http://wonderfl.net/code/7beb8650734b794c73fde3cc45f96a93acc05fb1
■PV3Dのオブジェクトのピッタリ狙った位置とサイズに2Dのムービークリップを重ねる技術
Camera3D の focus * zoom がちょうどスクリーン座標と 3D 座標が一致する距離。
this._camera.z = this._camera.focus * this._camera.zoom;
■Camera3Dの簡単設定
対象のtoransformコピーして、rotationしてmovieBackfoword!
var target:DisplayObject3D;
var distance:Number = 100;
this._camera.transform.copy(target.transform);
this._camera.moveBackward(distance);
そういえば娘が生まれました。百絵っていいます
主に笑ったり泣いたりウンチしたり寝たりしています。
package{
public class Momoe extends Beshin{
public function Momoe(){}
public function 泣く(){trace(“あーーーーー”)}
public function 笑う(){trace(“あうあうあう”)}
private function ウンチ(){trace(“ぶりぶりぶり”)}
private function 寝る(){trace(“ZZZ・・・”)}
}
}
こんにちわ。涼しくなってきたので全力で自転車をこぐbeshinです。
最近、夕方になるともっぱら公園でのんびりしてます。でも蚊がたくさんいるので
かゆいです。
というわけで、今回はドット絵を描いてみようと思います。
yoshiwebさんのこの記事を読んで、これならプログラムでドット絵書けるんじゃね?と思ったのでやってみました。
ドット絵といえば、マリオですよね。クリックすると、表示面が入れ替わります。
各ドット絵は配列で管理してます。
例えばマリオならこんな感じですね。各数字が色と関連付けされてます。
var arr:Array = [
[0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0],
[0,0,0,0,2,2,2,3,3,2,3,0,0,0,0,0],
[0,0,0,2,3,2,3,3,3,2,3,3,3,0,0,0],
[0,0,0,2,3,2,2,3,3,3,2,3,3,3,0,0],
[0,0,0,2,2,3,3,3,3,2,2,2,2,0,0,0],
[0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0],
[0,0,0,0,2,2,1,2,2,2,0,0,0,0,0,0],
[0,0,0,2,2,2,1,2,2,1,2,2,2,0,0,0],
[0,0,2,2,2,2,1,1,1,1,2,2,2,2,0,0],
[0,0,3,3,2,1,3,1,1,3,1,2,3,3,0,0],
[0,0,3,3,3,1,1,1,1,1,1,3,3,3,0,0],
[0,0,3,3,1,1,1,1,1,1,1,1,3,3,0,0],
[0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0],
[0,0,0,2,2,2,0,0,0,0,2,2,2,0,0,0],
[0,0,2,2,2,2,0,0,0,0,2,2,2,2,0,0]
]
今回アニメーションにBetweenAS3を使ってみようと思ったのですが、連打したときの挙動が怪しかったので、いつものようにTweenMaxでトゥィーンしています。
とおもったら、こんな記事が。
これでいけるようになるのかな・・・?
ソースは、papervision3dでCubeにする際の処理がすげえ力技なので、
もうちょい修正してわんだふるにあげるかもしれないです。
追記:10/08wonderflにあげました。