Home > Tags > まとめ
まとめ
[Flash Lite 1.1]制作前に知っておきたいことをQ&A形式でまとめてみた
- 2009-12-17 (木)
- flash lite | study

最近、GREEやモバゲーにハマっている友達を見て、携帯Flashの需要は今後もますます増えるだろうなぁと実感。
私は携帯Flashは面倒くさそう(特にFlash Lite 1.1)という理由であまり触ったことがありませんでしたが、
やっぱ触った経験がある方がいいなぁと思って最近サンプルを作ってみてます。
Flash Lite 2.0以上であれば、まだスクリプティングは楽そうですが、
やっぱり主流はしばらくFlash Lite 1.1でしょって事で、1.1に挑戦!
私はFlash触ったときすでにAS2.0だったので、AS1.0なFlash Lite 1.1での制作は初めて知ることがたくさんありました。
また携帯ならではの制約や関数もあって、もう面倒くさい!
でも、Flash Lite 1.1のお作法に慣れることができれば、そんなに難しくないなって思いました。
と言う事で自分の備忘録として、Flash Liteの基礎知識や、Flash Lite1.1コンテンツ制作中にぶつかるギモンをQ&A形式でまとめていきまっす!!
Q.容量制限はどんな感じ?
基本的にdocomo、auは1ファイルにつき100KB、SoftBankは150KBとなっている。
ただしauでは、「一回の通信につき100KB」なので、loadMovieを繰り返せばメモリの許す限り、大量のコンテンツを表示させることができる。
各キャリアの容量制限
| キャリア | バージョン | Flash Player | 参考メモリサイズ ※機種ごとに変動 |
|---|---|---|---|
| docomo | 1.0 | Flash4相当 | FOMA 最大100KB MOVA 最大20KB |
| 1.1 | Flash4相当 | 最大100KB ※外部load分含む |
|
| 3.0 | Flash8相当 | 最大100KB ※外部load分含む ※ボタンアクションの場合 1セッションにつき500KBまで |
|
| 3.1 | Flash8相当 | 最大100KB ※外部load分含む ※ボタンアクションの場合 1セッションにつき500KBまで |
|
| 3.1 iモードブラウザ2.0端末 | Flash8相当 | 最大500KB ※外部load分含む ※ボタンアクションの場合 1セッションにつき500KBまで ※FLVはプログレッシブ再生 のみ10MBまで |
|
| au | 1.1 | Flash4相当 | WIN 最大100KB 1X 最大48KB ※1セッションにつき |
| 2.0 | Flash7相当 | 最大100KB ※1セッションにつき |
|
| 3.0 | Flash7相当 | 最大100KB ※1セッションにつき |
|
| SoftBank | 1.1 | Flash4相当 | 最大100KB |
| 2.0 | Flash7相当 | 最大150KB ※1セッションにつき |
|
| 3.0 | Flash7相当 | 最大150KB ※1セッションにつき |
Q.メモリ制限はどんな感じ?
Flash Liteに割り当てられるメモリの量はパソコン用のFlashに比べて貧弱。
コンテンツ開発をしているときにビットマップが赤く表示されることがあれば、メモリ不足のサイン。
各キャリアの搭載メモリの目安
| キャリア | バージョン | 参考メモリサイズ ※機種ごとに変動 |
|---|---|---|
| docomo | 1.0 | 200~400KB |
| 1.1 | 2MB程度 | |
| 3.0 | 3MB程度 | |
| 3.1 | 3MB程度 | |
| 3.1 iモードブラウザ2.0端末 | 15MB程度 | |
| au | 1.1 | 1MB程度 |
| 2.0 | 3MB程度 | |
| 3.0 | 3MB程度 | |
| SoftBank | 1.1 | 1MB程度 |
| 2.0 | 2MB程度 | |
| 3.0 | 3MB程度 |
メモリの使用状況を実機で確認するには
fscommand2を使用します。
//useMemoryをテキストフィールドに表示させれば確認できる
useMemory=fscommand2("GetTotalPlayerMemory")-fscommand2("GetFreePlayerMemory");
Q.各キャリアのサウンド形式はどんな感じ?
NTTドコモではMIDI、auとソフトバンクでは「SMAF」という携帯電話などに向けたサウンド形式が採用されている。
MIDIは機種の音源を使用するために、同じ曲でも機種ごとに音色が異なる可能性がある。
一方、SMAFは波形データであるため、基本的には同じ様な音色で再生することが可能。
各キャリアのサウンド形式
| キャリア | バージョン | 参考メモリサイズ ※機種ごとに変動 |
|---|---|---|
| docomo | 1.1~3.1 | MIDI、SMF |
| 3.1 iモードブラウザ2.0端末 | MIDI、SMF、MP3 | |
| au | 全バージョン | SMAF(一部MIDI) |
| SoftBank |
docomo端末でのmp3再生
docomo Flash Lite 3.1iモードブラウザ2.0端末では、MP3の再生が可能で、idタグの情報も取得できる。
MP3の容量はswfとあわせて500KBまで。
wav形式⇒SMAF形式変換ツール
YAMAHA製 Wave to SMAFコンバータ(無料)
http://smaf-yamaha.com/jp/tools/downloads.html#converter
Q.一般的なガイドラインが知りたい!
最新のFlash Lite3.1が普及するには、まだまだ時間が必要。
今後しばらくはFlash Lite1.1コンテンツで制作するのが主流。
一番普及台数が多いdocomo向けのFlash Lite1.1に合わせた参考ガイドライン
| Flash Liteのバージョン | Flash Lite 1.1 |
|---|---|
| 画面サイズ | 横 240px × 縦 240px~320px |
| 使用メモリ | 1000KB |
| フレームレート | 8~10fps |
| フォントサイズ | 小:12px、大:24px |
| 書き出しサイズ | 100KB |
Q.onEnterFrameが使いたい!
Flash Lite 1.1ではonEnterFrameが使えません。
1フレーム目にループさせたい処理を書いて、
2フレームにgotoAndStop(1);と書いてタイムライン上でループ処理を行うようにします。
Q.インスタンスにアクセスしたい!
tellTarget関数を使います。
ルートからインスタンスmcのフレームを2に移動する例
/*Flash Lite 2.0以降*/
mc.gotoAndStop(2);/*Flash Lite 1.1の場合*/
tellTarget(”mc”){
gotoAndStop(2);
}
なお、Flash Lite 1.1はドットシンタックスではなく、スラッシュシンタックスなので、記述は下記のような感じになります。
| ドットシンタックス(AS2.0) | スラッシュシンタックス |
|---|---|
| mc.child | mc/child |
| _parent.mc.child | ../mc/child |
| _root.mc.child | /mc/child |
Q.インスタンスのプロパティを変更したい!
setProperty関数を使います。
インスタンスmcの_xを100にする例
/*Flash Lite 2.0以降*/
mc.x=100;
/*Flash Lite 1.1*/
setProperty(”mc”,_x,100);
第1引数にインスタンス名、第2引数にプロパティ、第3引数に値をいれます。
Q.外部へのアクセスはどうやってやるの?
外部へのアクセスはgetURL、LoadMovie、LoadMovieNum、LoadVariables、loadVariablesNumが使用できます。
外部へのアクセスはボタンアクションに設定すること
外部アクセスは必ずボタンアクションに設定されていないといけない。
ボタンアクションは「決定キー」「数字キー(0~9、#、*)」を押すことによるイベントのこと。
また、上下キーにはボタンアクションを割り当てることができない。上下キーはフォーカス移動のみに使用する。
//OK:数字キーは外部通信可能
on(KeyPress "1"){
getURL("a.swf");
}//NG:上下キーはフォーカス移動のみ
on(KeyPress ""){//←NG:上、下、右、左はボタンアクションを設定できない。
getURL("a.swf");
}
ボタンアクション一回につき1通信しか無理
1回のボタンアクションに大して、1回の通信という制限がある。
1回のボタンアクションに対して、2つ以上の外部通信を記述してもエラーとなり、パブリッシュできない。
//NG:ハンドラ内のアクションは無視される
on(press){
getURL("a.swf");
getURL("b.swf");
}
Q.携帯電話の様々な情報を取得したい!
基本的にどんなコンテンツでも記法は同じだと思うのでスニペットを載せておきます。
時間の取得
/*時・分・秒の取得*/
hour = fscommand2("GetTimeHours");//時間
minute = fscommand2("GetTimeMinutes");//分
second = fscommand2("GetTimeSeconds");//秒/*時・分・秒が10以下の場合先頭に0を足す*/
if (hour<10) {
hour = "0" add hour;
}
if (minute<10) {
minute = "0" add minute;
}
if (second<10) {
second = "0" add second;
}
年月日の取得
/*年・月・日の取得*/
year = fscommand2("GetDateYear");//年
month = fscommand2("GetDateMonth");//月
day = fscommand2("GetDateDay");//日/*年・月・日が10以下の場合先頭に0を足す*/
if (year<10) {
year = "0" add year;
}
if (month<10) {
month = "0" add month;
}
if (day<10) {
day = "0" add day;
}
曜日の取得
/*曜日の取得(0~6⇒日~土)*/
weekday = fscommand2("GetDateWeekday");/*取得した数字によって表示する文字列を変える*/
if (weekday == 0) {//日
wd = "sun";
} else if (weekday == 1) {//月
wd = "mon";
} else if (weekday == 2) {//火
wd = "tue";
} else if (weekday == 3) {//水
wd = "wed";
} else if (weekday == 4) {//木
wd = "thu";
} else if (weekday == 5) {//金
wd = "fri";
} else if (weekday == 6) {//土
wd = "sat";
}
電波状況の取得
/*電波状況の取得(インスタンスsignalの表示を変更する例)
**docomo:0-3,au:0-4,SoftBank:0-4(0は圏外)*/
tellTarget ("signal") {
qframe = fscommand2("GetSignalLevel");
if (qframe>4) {
qframe = 4;
}
gotoAndStop(qframe);
}
電池残量の取得
/*電池残量の取得(インスタンスbatteryの表示を変更する例)
**docomo,au,SoftBank共通:0-3*/
tellTarget ("battery") {
gotoAndStop(fscommand2("GetBatteryLevel")+1);
}
電源情報の取得
/*電池残量の取得(インスタンスchargeの表示を変更する例)
**0:バッテリー使用、1:外部電源で動作*/
tellTarget ("charge") {
gotoAndStop( fscommand2("GetPowerSouce")+1);
}
Q.電話へのリンクはどうするの?
下記のように記述すればOK。
/*電話の発信*/
getURL("tel:090xxxxxxxx");
Q.GPS情報の送信はできるの?
auとSoftBankは可能。docomoは不可能。
/*GPS情報送信*/
//auの場合(Flash Lite 2.0以降)
getURL("device:location?url=CGIのURL");//SoftBankの場合(Flash Lite 2.0以降)
getURL("llocation:auto?url=CGIのURL");//docomoの場合はFlash LiteからGPS機能は呼び出せない
参考にした本

Flash Liteで作る携帯コンテンツ実践教科書 (Web Designing BOOKS)
数少ないFlash Lite本の中で、わかりやすい良書。
16個のサンプルを掲載。
特に最後の方に掲載されているFlash Liteコンテンツに関する知識やTipsがうまくまとめられていて、すごく参考になりました!
なんか、amazonでは評判悪いけど、PCでのFlash制作をある程度経験ある方ならわかりやすいと思います!
関連する投稿
- Comments: 0
- Trackbacks: 0
[progression勉強]実制作でつまづいたとこをQ&A形式でまとめてみた
- 2009-04-28 (火)
- progression | study

最近、仕事の案件でflash案件がきた(てかflashにした)ので、
初めてprogressionを使って制作してました。
まだprogressionでの制作方法やas3のことすら、熟知していないのでいろんなところで
つまづいきました。。
ちょっとしたとこでつまづいても解決法をみつけだすのに長時間悩んだりすることが結構あったので、
実制作でprogressionを使ってみて私が躓いたとこや疑問に思ったことと、ググったりして知った答えを
書きとめていたものを、
Q&A形式でまとめてみました!
Q.Castのコンストラクタからステージを参照できない
ステージリサイズで位置とかサイズとか可変させようと思ってコンストラクタで、
リサイズ時実行させる関数をstageにaddEventListenerさせようとしたらコンパイルエラー。
stageの参照は _onCastAddedの中なら可能です。
要は表示オブジェクトコンテナに追加されたタイミングではじめて参照出来るようになるってことですね。
よく考えたらわかることなのですが、なんでエラーが返ってくるのか理解できずに躓いてました。。。
- protected override function _onCastAdded():void {
- stage.addEventListener( Event.RESIZE, onResizeHandler);
- onResizeHandler(null);
- addCommand(
- // 任意のコマンドを記述してください。
- new Trace(stage.stageWidth);
- );
- }
これでOK!
Q異なるシーン間で値の受け渡しがしたい!
progressionのget~系メソッドがいいらしい!
http://www.northprint.net/2009/03/progressionget.html
私は名前つけるのめんどくさかったのでgetSceneBySceneId使いました!
http://flabaka.com/blog/?p=577
たとえばIndexSceneの_testという値を参照する。
var a:IndexScene = IndexScene(getSceneBySceneId(new SceneId("/index")));
trace(a._test);
これは表示リストに追加されてからでないと無理なので、コンストラクタではなく、_onCastAddedの中でやること!
あとIndexSceneのインポートを忘れずに!
Q.progressionのrootはどうやって参照?
trick7さんの記事を参考に!
http://www.trick7.com/blog/2008/12/09-114334.php
Q.castButtonを追加したときも何か動かしたい!
castButton用castSpriteを作ってやる方法を参考にさせてもらいました!
http://narayama.heteml.jp/2008/09/castbuttoncastsprite.html
Q.あれ?onLoadとonInitの違いは何やったっけ?
これ、初歩的ですが、何度も何度もnorthprintさんのgihyoの記事に掲載されてたこの図で確認してます。。。
![]()
Q.tweeneerのコマンドはあるけど、tweensyのコマンドは用意されてないの?
コミッターの seyself さんが、 tweensy をコマンドとして使用できる DoTweensy コマンドを作成してくださっているそうです。
http://trac.progression.jp/browser/experiments/sayself/extensions/classes/com/seyself/extras/progression
Q.castButtonでsceneIdを指定してじゃなく次のシーンに飛ばすにはどうするの?
次のシーンのsceneIdを取得するには
progression.current.next.sceneId;
前のシーンのsceneIdを取得するには
progression.current.previous.sceneId;
ということで、やってみる。
IndexSceneで関数nextSceneId,prevSceneIdを用意しといて、
子シーンオブジェクトの_onInitとかで
var a:IndexScene = IndexScene(getSceneBySceneId(new SceneId("/index")));
a.nextSceneId=progression.current.next.sceneId;
a.prevSceneId=progression.current.previous.sceneId;
と書き換えておいて
その子シーンオブジェクトの中のCastBtn(_nextBtnと_prevBtn)のsceneIdを書き換えてやる。
var a:IndexScene = IndexScene(getSceneBySceneId(new SceneId("/index")));
_nextBtn.sceneId=a.nextSceneId;
_prevBtn.sceneId=a.prevSceneId;
これが一番良い方法かわからないですが、参考程度に。
Q.castButtonでhtmlページにリンクさせるにはどうするの?
castButtonのプロパティにhrefがあるから、以下のような記述をコンストラクタにする。
href="http://kanariia.com/blog/";
sceneId プロパティと href プロパティが両方とも設定されている場合には、href プロパティの設定が優先されるそうな。
あと、windowTargetプロパティも用意されてるので、以下のように使える。いやーさすが。
href="http://kanariia.com/blog/";
windowTarget="_blank";
Q.castImageLoaderで読み込んだ画像をスムージングしたい
ExImageLoaderのプロパティにsmoothingというのがあるので、
コンストラクタで
smoothing=true;
でOK。
castImageLoaderはExImageLoaderのサブクラスなので。
ちなみにリサイズの際、縦横比を維持したい場合は
ratio=true;
でOK。
Q.castButtonの_onCastRollOverと_onCastRollOutにDoTweenerを設定したが、超速でのせたりはずしたりするとエラーがかえってくる。
こんなエラーがよくでて困ったことありませんか。
[ERROR] <DoTweener : command_2031> コマンドで CommandTimeOutError エラーが発生。
原因はコマンドが実行中なのに同じインスタンスに他のコマンドが上書きされるからだと思われる。
実行中のコマンドを中断してやることが必要。
コマンドを中断するためにどうすればよいか、でみつけたのがinterrupt()メソッド。
これを使うためにはexecute()メソッドでコマンドを実行する必要があるらしい。
じゃあaddCommand使わないでやってみよーてことで、こんな感じ。
- package myproject.btn {
- import jp.progression.casts.*;
- import jp.progression.commands.*;
- import jp.progression.events.*;
- import jp.progression.loader.*;
- import jp.progression.*;
- import jp.progression.scenes.*;
- /**
- * ...
- * @author kanariia
- */
- public class TestBtn extends CastButton {
- private var _rollOver:SerialList;
- private var _rollOut:SerialList;
- /*======================================================================*//**
- * コンストラクタ
- */
- public function TestBtn( initObject:Object = null ) {
- super( initObject );
- }
- /*======================================================================*//**
- * ユーザーが CastButton インスタンスにポインティングデバイスを合わせたときに送出されます。
- * このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
- */
- protected override function _onCastRollOver():void {
- if (_rollOut) {
- //_rollOutのコマンドをすべて解除する
- _rollOut.interrupt();
- }
- _rollOver = new SerialList();
- _rollOver.addCommand(
- new DoTweener(this, { alpha:0.5, time:0.5, transition:"easeOutExpo" } )
- );
- //コマンド実行
- _rollOver.execute();
- }
- /*======================================================================*//**
- * ユーザーが CastButton インスタンスからポインティングデバイスを離したときに送出されます。
- * このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
- */
- protected override function _onCastRollOut():void {
- if (_rollOver) {
- //_rollOverのコマンドをすべて解除する
- _rollOver.interrupt();
- }
- _rollOut = new SerialList();
- _rollOut.addCommand(
- new DoTweener(this, { alpha:1, time:0.5, transition:"easeOutExpo" } )
- );
- //コマンド実行
- _rollOut.execute();
- }
- }
- }
スマートじゃないかもしれないけど、こうすればエラーはとまります!
Q.CastButtonの無効化はどうするの?
いつものようにenabled=false;にしても、無理だったので調べました。
ボタン有効・無効を設定する
buttonEnabledプロパティが用意されていたので、
buttonEnabled=false;
でいけるみたい!
Q.ページタイトルはどうやって変えるの?
http://blog.img8.com/archives/2008/11/004207.html
SceneObjectにはtitleというプロパティがあります。
prog.sync=true;じゃないと作動しないらしい。
あと、index.htmlのタイトルがIndexSceneにたどりつくまで
表示されるので、直しておくべし。
sceneObjectのコンストラクタとかに
title="テストサイト"
みたいな感じで書けばOK。
indexSceneでほかのシーンも作ってる場合は
aboutScene.title="about|テストサイト";
て感じでOK。
IndexSceneで子・孫シーンをonLoadで一気に追加しておけば、
こんな設定も超簡単にすむw
ひとこと
自分用のメモみたいな感じなんで、きれいにまとまってるわけじゃないけど、
同じことで躓いてる人がこのエントリで救われるといいなー
関連する投稿
- Comments: 0
- Trackbacks: 1
[tweensy]いろいろ試してみる:TweensyGroupで特殊プロパティをトゥイーン
訳しときながらTweensyGroupって何なのかわからなかったけど、
今日asDoc読んでてわかったような気が…。
TweensyGroupには、tweenerでいう特殊プロパティ的なもののトゥイーンのショートカットがあって、
Tweensyでやるよりコードがすっきりして、簡単。
色、輝度、マトリックス、…などなどをバラバラに指定できて、まとめて管理できるから”Group”ってことなのかな??
それぞれの効果にTweensyTimelineを作ってグループ管理している模様。
時間、イージング、遅延とか各効果別に設定したいけど、制御系はグループ管理したいって時に使えるってことか。
とにかく今回は制御というよりかは特殊プロパティについて調べてみる。
TweensyGroupサンプル
透明度をあげつつ、ぼかしをとりつつ、ぼよんと拡大する。
Sample1.as
- package
- {
- import com.flashdynamix.motion.*;
- import fl.motion.easing.*;
- import flash.text.TextField;
- import flash.display.MovieClip;
- import flash.filters.BlurFilter;
- import flash.geom.Matrix;
- /**
- * ...
- * @author DefaultUser (Tools -> Custom Arguments...)
- */
- public class Sample1 extends MovieClip
- {
- private var tween:TweensyGroup;
- private var tf:TextField;
- public function Sample1() {
- tween = new TweensyGroup();
- tween.onComplete = tweenComp;
- //透明度
- this.alpha = 0;
- tween.alphaTo(this, 1, 1,Quartic.easeOut,0.5);
- //フィルター
- var blur:BlurFilter = new BlurFilter(30,30,1);
- tween.filterTo(this, blur, {blurX:0,blurY:0}, 1,Quartic.easeOut,0.5)
- //拡大・縮小
- tween.scaleTo(this, 2, 2, Elastic.easeOut, 1);
- //テキストフィールドを作成、追加
- tf = new TextField();
- tf.y = -(this.height/2)-20; //基準点が中央のため
- addChild(tf);
- }
- public function tweenComp():void {
- tf.text = "Complete!";
- }
- }
- }
ショートカットの詳細
alphaToメソッド -透明度の変更
public function alphaTo(instance:Object, alpha:Number, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcのアルファを3秒かけて0.5にする
tween.alphaTo(mc, 0, 5,3);
brightnessToメソッド -輝度の変更
public function brightnessTo(instance:Object, amount:Number, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcの輝度を3秒かけて0.5にする
tween.alphaTo(mc, 1, 5,3);
ColorToメソッド -色を変更
public function colorTo(instance:Object, color:uint, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcの色を3秒かけて0x000000(黒)にする
tween.colorTo(mc, 0x000000, 3);
ColorTransformToメソッド -ColorTranceformの適用
public function colorTransformTo(instance:Object, color:ColorTransform, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
import flash.geom.ColorTransform;
//mcの色をColorTransform オブジェクトctに5秒かけて適用
var ct:ColorTransform=new ColorTransform(-1, -1, -1, 1, 255, 255, 255, 0)
tween.colorTransformTo(mc, ct, 5)
contrastToメソッド -コントラストの変更
public function contrastTo(instance:Object, amount:Number, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcのコントラストを3秒かけて1(最大)に変更
tween.contrastTo(mc 1,2);
filterToメソッド -フィルタ効果の適用
public function filterTo(instance:Object, filter:BitmapFilter, to:Object, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
import flash.filters.BlurFilter;
//ぼかしフィルターのblurX、blurYを10に5秒かけて適用
var blur:BlurFilter = new BlurFilter(0,0,1);
tween.filterTo(this, blur, {blurX:10,blurY:10}, 5);
matrixToメソッド -マトリックス変形の適用
public function matrixTo(instance:Object, mtx:Matrix, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
import flash.geom.Matrix;
//mcにMatrixオブジェクトmtxを3秒かけて適用
var mtx:Matrix = new Matrix(-1,2,1,2,1,2);
tween.matrixTo(this, mtx, 3);
rotateToメソッド -回転
public function rotateTo(instance:Object, rotation:Number, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcの角度を3秒かけて180度に変更
tween.rotateTo(mc, 180, 3);
scaleToメソッド -拡大・縮小
public function scaleTo(instance:Object, scale:Number, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
//mcを1秒かけて50%に縮小
tween.scaleTo(mc,0.5,1);
soundTransformTo -SoundTransformの適用
public function soundTransformTo(instance:Object, trans:SoundTransform, duration:Number = 0.5, ease:Function = null, delayStart:Number = 0): TweensyTimeline
import flash.media.SoundTransform;
////mcにSoundTranceformオブジェクトstを3秒かけて適用
var st:SoundTransform = new SoundTransform(1, 0);
tween.soundTransformTo(this, st, 3);
関連する投稿
- Comments: 0
- Trackbacks: 1
[tweensy]TweensyOriginalの使い方:和訳してみる

前回に引き続き、
今回はTweenOriginalのwikiを基に
tweenOriginalの使い方をまとめてみまーす。
翻訳エンジンで訳して自分なりにわかるところは修正したりして
意外に時間がかかり、
tweensygroupらへんから訳が翻訳エンジンかけたまんまの文とか
グダグダになってしまった。。。
それでも、なんとなくわかる内容なんで、ぜひ参考程度にどーぞ。
tweenの方法
終了時の値を設定:Twennsy.to
import com.flashdynamix.motion.Tweensy;
Tweensy.to(myInstance, {x:500});
myInstanceのxを現在の位置から500までアニメーションします。
開始時の値を設定:Tweensy.from
import com.flashdynamix.motion.Tweensy;
Tweensy.from(myInstance, {x:500});
myInstanceのxを500から現在の位置までアニメーションします。
開始時・終了時両方の値を設定:Tweensy.fromTo
import com.flashdynamix.motion.Tweensy;
Tweensy.fromTo(myInstance, {x:0}, {x:500});
myInstanceのxを0から500までアニメーションします。
tweenの制御方法
トゥイーンを停止
オブジェクトのインスタンス、またはプロパティの名前を介して運動でトゥイーンを停止することができます。
myInstance1の全てのトゥイーンが停止、myInstance2はトゥイーンを継続する。
import com.flashdynamix.motion.Tweensy;
Tweensy.to(myInstance1, {x:500, y:500});
Tweensy.to(myInstance2, {x:500, y:500});
Tweensy.stop(myInstance1);
myInstance1のxプロパティを停止。
Tweensy.stop(myInstance1, "x");
現在行われているトゥイーンのXプロパティをすべてを停止。
Tweensy.stop(null, "x");
myInstance1とmyInstance2のすべてのtweensを停止。
Tweensy.stop([myInstance1, myInstance2]);
myInstance1とmyInstance2のxプロパティを停止。
Tweensy.stop([myInstance1, myInstance2], "x");
トゥイーンの一時停止と再開
Tweensy.pause ( ) ;
Tweensy.resume( ) ;
時間ベースとフレームベース
デフォルトではTweensyは時間ベースのアニメーションを使用して、設定したトゥイーンを正確に終了させます。 Movieclipアニメーションは、 FlashベースのIDEで作成され、フレームベースでのTweensyも、このモードを使用するためのオプションを提供しています。 フレームアニメーションを使用するとき、1秒あたりの何フレーム動かすかをENTER_FRAMEに適用させることができます。もしFlaファイルのFPSが30の場合はSPFを1/30に設定します。
Tweensy.refreshType = Tweensy.FRAME;
Tweensy.secondsPerFrame = 1/30;
トゥイーンを更新
トゥイーン作動中には残っているアニメーション時間内にそこにシームレスに位置を更新することができます。
Tweensy.updateTo(myInstance, {x:250});
トゥイーンの繰り返し
トゥイーンはヨーヨー、ループおよびやり直しでのタイプをセットすることができます、1回のみ、有限のループ回数、無限ループもセットできます。アニメーションの繰り返しに関するより多くの情報はドキュメンテーションで見つけることができます。
以下はmyInstanceをXを現在の位置から500の位置にし、往復3回アニメーションを繰り返す例。
import com.flashdynamix.motion.;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500});
timeline.repeatType = Tweensy.YOYO;
timeline.repeats = 3;
他のことを知る
to,from,fromToで定義され、あなたがtweensアニメーションの間に変更できるパラメータを含むトゥイーンをTweensyTimelineの実例を基に説明します
タイムラインを使用する
to,from,fromTotweenが定義されるとき、それはTweensyTImelineのインスタンスを返すでしょう。TweensyTImelineは、to,from,fromToメソッドの中だけでなく、そうでていないtweensアニメーションudating中のパラメータを定義するプロパティを使用することができます。
import com.flashdynamix.motion.;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500}, 2.0);
timeline.duration = 3.5;
3.5秒後にmyInstanceのXの位置を現在の位置から500の位置に2秒かけて移動させる。
相対位置とランダムな範囲
to,fromオブジェクトのプロパティには、相対位置か範囲を指定した中でのランダムな位置を定義することが可能です。
{x:"500"} 現在のX位置に+500した位置を定義します。
{x:"-500"} 現在のX位置に-500した位置を定義します。
{x:"250,500"} +250から+500までの間でランダムな位置を定義します。
イーズ式の使用
ease equationsはA点からB点への移動のスタイルを変更します。
tweensyがサポートする全てのease equationsは
アドビを経由してfl.motion.easingをTweensyライブラリの一部として提供されています。
もしnullもしくはパラメータを入力していない場合、
デフォルトではease equationはQuintic.easeOutで提供されます。
import com.flashdynamix.motion.Tweensy;
import fl.motion.easing.Sine.easeOut;
Tweensy.to(myInstance, {x:500}, 2.0, Sine.easeOut);
myInstanceがSine.easeOutの方程式を使用して2秒かけてx座標500の位置に移動します。
イーズ式のための追加パラメータ
Back、Elasticのease equationsは追加のパラメータを定義できる特別なease equationsです。 TweensyTimelineは、あなたがクラスBackEaseParamsおよびElasticEaseParamsによってこれをコントロールするパラメーターを定義することを可能にします。
import com.flashdynamix.motion.;
import fl.motion.easing.Back.easeOut;
import com.flashdynamix.motion.easing.BackEaseParams;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500}, 2.0, Back.easeOut);
timeline.easeParams = new BackEaseParams(0.7);
myInstanceがBack.easeOutの方程式を使用して2秒かけてx座標500の位置に移動し、超過を0.7倍弱める。
トゥイーンの遅延
デフォルトでは設定がありませんが、すべてのトゥイーンで開始と終了を遅らせることができます。
import com.flashdynamix.motion.;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500}, 2.0, null, 1.0);
timeline.delayEnd = 1.5;
一秒後にmyInstanceのxを現在の位置から500まで移動させ、その後1.5秒たったら完了。
高度なトゥイーン
Actionscriptの中のあるオブジェクトの特性をトゥイーンすることはより複雑かもしれません。 これらのオブジェクトは数名にBitmapFilters 、 ColorTransforms 、MatricesとSoundTransformsを含んでいます。 Tweensyかかわらず、オブジェクトには、更新することを定義するために余分なパラメータを定義する必要があります。
myInstanceに2秒かけてドロップシャドウを適用させてblurXとblurYを10にする。
Tweensy.to(new DropShadowFilter(), {blurX:10, blurY:10}, 2.0, null, 0, myInstance);
myInstanceのマトリックスのtxとtyの特性、またmyInstanceの上にマトリックス変形を適用します。
var mtx:Matrix = myInstance.transform.matrix;
mtx.tx = 200;
mtx.ty = 200;
Tweensy.to(myInstance.transform.matrix, mtx, 2.0, null, 0, myInstance);
myInstanceのColorTransformをTweensのredOffsetプロパティと色に変換myInstanceに適用されます。
var ct:ColorTransform = myInstance.transform.colorTransform;
ct.redOffset = 80;
Tweensy.to(myInstance.transform.colorTransform, ct, 2.0, null, 0, myInstance);
SoundChannelのSoundTransformのボリューム特性、また音を適用する、myChannelの上に変形します。
var st:SoundTransform = myChannel.soundTransform;
st.volume = 0;
Tweensy.to(myChannel.soundTransform, st, 2.0, null, 0, myChannel);
トゥイーンのイベントの追加と削除
Tweensyイベント
onUpdate -Event.ENTER_FRAMEのレンダリングするごとに発生します。
onComplete -全てのアニメーションが終了後に発生します。
import com.flashdynamix.motion.;
Tweensy.to(myInstance, {x:500}, 2.0);
Tweensy.onComplete = allAnimationsComplete;
TweensyTimelineイベント
onUpdate -タイムラインの更新が行われるたびに発生します。
onComplete -全てのアニメーションが終了後に発生します。
onRepeat - タイムラインのアニメーションを繰り返すときに発生します。
import com.flashdynamix.motion.;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500}, 2.0);
timeline.onComplete = animationComplete;
timeline.onCompleteParams = myInstance;
onCompleteまたはonUpdateイベントを削除するには単にそれをnullに設定すればよい。
timeline.onComplete = null;
Tweensyは、それがあらかじめ定められたパラメーターのためにEventDispatcherを最初に使用するすべてのあくどさのないトゥイーンを連れ去る自己を考慮に入れることを可能にするとともにAdobeEventDispatcherではなくEventListenerを適用するこの方法を使用します、つまり。 (↑ちょっとうまく訳すことできてない。。)
import com.flashdynamix.motion.;
var timeline:TweensyTimeline = Tweensy.to(myInstance, {x:500}, 2.0);
timeline.onComplete = myInstance.parent.removeChild;
timeline.onCompleteParams = myInstance;
TweensyGroupを使用する
TweensyGroup tweeningの推奨実装され、 Tweensyのすべての機能(やそれ以上を提供しています)は、静的メソッドとプロパティではの機能を提供していません。 として、アニメーションのTweensyGroupのインスタンスに含まれる唯一のものは、アニメーションを制御の高いレベルを提供していますこのインスタンスによって定義されます。 このTweensyGroup停止、一時停止することができますし、唯一の効果は、このTweensyGroupインスタンスrefreshTypes特定の設定を意味します。
弱参照されているTweensyGroupの場合は、インスタンスを維持して処分するのは、もはや使用することが重要ですが参照されているとして注意ください。
(↑意味不明)
var tween:TweensyGroup = new TweensyGroup();
tween.to(myInstance, {x:500});
TweensyGroupを使用してその他の利点
TweenGroup以外のショートカットTweensyエンジンのコンセプトは、高度な機能の集合を含んでいます。これらのいくつかは含まれます:
- matrixTo
- colorTransformTo
- soundTransformTo
- filterTo
- functionTo
- slideTo
- scaleTo
TweensyGroupを処分する
TweensGroupが構築されるとともに、それをやめる場合、クラスを処分することは重要です。
import com.flashdynamix.motion.;
var tween:TweensyGroup = new TweensyGroup();
tween.dispose(); tween = null;
TweenGroupとレイジーモード
Tweensyデフォルトで自動的にかかわらず、これはパフォーマンスを犠牲になるtweening紛争を解決します。
この機能は全体のパフォーマンスを向上させることができるのTweensyオフになっている。
そのため、オフ時には、開発者には、停止の方法で特定のインスタンスを停止するこのモードは怠惰tweensトゥイーン紛争解決とみなされます。
(↑翻訳うまくできず。。)
var tween:TweensyGroup = new TweensyGroup(false);
自動tweening紛争の解決を無効にします。
TweensyGroupと分かち合う目的
Tweensyがそのようである理由の一部、効率的なメモリはそれです、このオプションがあるデフォルトによって共同出資するオブジェクトを使用するオプションを持っています。これは、オブジェクト共同出資の使用が初心者開発者に適しないやや拡張機能であるからです。より経験を積んだ開発者のために、それがこの特徴を使用するために推奨されます。しかしそれ、そのTweensyGroupに注意するのに重要なes、TweensyTimeline、およびこれが持つかもしれない意味合いのプール実例。TweensyTimelineの実例が一定に言及される場合、これはあなたのコードに論理的問題を作成するかもしれません。これはTweensyTImelineの後、実例があなたのアニメーションに最初に使用されるからです、それは、別のもののために再び使用されてもよい。
(↑翻訳うまくできず。。)
var tween:TweensyGroup = new TweensyGroup(false, true);
TweensyがObjectプーリングを使用するのを可能にするでしょう。
トゥイーン運動ガイド
Tweensyには、モーショントゥイーンで使用されるために方向、軌道またはbezier経路を定義すると考慮するガイドと呼ばれるパッケージがあります。
方向tweensガイド
方向ガイドは方向と距離を持っています。Direction2Dクラスに対する立場をTweeningすることは、パスにおいては、アイテムがどこで最初に置かれるか定義します、パスは立場0および立場1の終わりにあります。
import com.flashdynamix.motion.;
import com.flashdynamix.motion.guides.Direction2D;
var tween:TweensyGroup = new TweensyGroup();
tween.to(new Direction2D(myInstance, 45, 100), {position:1});
myInstance を現在の角度から45度、現在の位置から100ピクセルの距離に移動する。
軌道tweensガイド
Orbit2Dクラス上の程度で角度をTweeningすることは、パスにおいては、アイテムがどこで最初に置かれるか定義します、パスは角度0にあります。
import com.flashdynamix.motion.;
import com.flashdynamix.motion.guides.Orbit2D;
var tween:TweensyGroup = new TweensyGroup();
tween.to(new Orbit2D(myInstance, 100, 100, 250, 250), {degree:360});
x/y中心点250からのx/y半径100上で360度myInstanceの周囲を軌道を描いて回る。
ベジエtweensガイド
bezierガイドは、bezierパスを定義するポイントのコレクションを持っています。Bezier2Dクラスに対する立場をTweeningすることは、パスにおいては、アイテムがどこで最初に置かれるか定義します、パスは立場0および立場1の終わりにあります。
import com.flashdynamix.motion.;
import com.flashdynamix.motion.guides.Bezier2D;
var tween:TweensyGroup = new TweensyGroup();
var bezier:Bezier2D = new Bezier2D(myInstance, true, false, false);
bezier.push(new Point(100, 100); bezier.push(new Point(200, 150);
bezier.push(new Point(300, 100); bezier.push(new Point(400, 300);
tween.to(bezier, {position:1});
開始ポジションから定義されたbezierパスに沿ってmyInstanceをアニメーション化します。
高度なMatrixおよびColorMatrixFilterトゥイーン
tweensyのパッケージでは、あなたは非常に簡単な方法で複雑なアニメーションを追加できるようにクラスが含まれています。 これらのトゥイーンは、登録ポイントのまわりのマトリックス変形を含みます。明るさ、コントラスト、ColorMatrixFilter効果、色としきいなども。
高度なMatrixトゥイーン
高度なMatrixトゥイーンは定義された登録ポイントのまわりのマトリックス変形を適用することができます。
これらの変形は回転、skewX、skewY、scaleX、scaleY、translationXおよびtranslationYを含んでいます。
import com.flashdynamix.motion.;
import com.flashdynamix.motion.extras.MatrixTransform;
var tween:TweensyGroup = new TweensyGroup();
var mtx:MatrixTransform = new MatrixTransform(myInstance);
mtx.registrationX = myInstance.x + myInstance.width/2;
mtx.registrationY = myInstance.y + myInstance.height/2;
tween.to(mtx, {degree:45});
ColorMatrixFilterトゥイーン
ColorMatrixFilterは明るさのような複雑な色変更を適用することができます。
差異(飽和)、色付けする、またしきい値。ColorMatrixクラスは、その後、ColorMatrixFilterの上にtweenedされる4x5配列マトリックスを作成するのを支援します。
import flash.filters.ColorMatrixFilter;
import com.flashdynamix.motion.;
import com.flashdynamix.motion.extras.ColorMatrix;
var tween:TweensyGroup = new TweensyGroup();
tween.to(new ColorMatrixFilter(), new ColorMatrix(0, 0, 3), 2, null, 0, myInstance);
単位行列からColorMatrixによって定義されたArrayマトリクスまでColorMatrixFilterをtweenして、ColorMatrixFilterをmyInstanceに適用する。
TweensySequenceを使用する
TweensySequenceは、一続きのトゥイーンが次々に生じることを可能にします。
TweensyGroupと同様に、 TweensySequenceを構築する必要があります。
一旦、シーケンスが作成されたならば、その後、いつでもシーケンスを始めるか、止めるか、休止するか、再開することができます。
同様にモードやり直しおよびヨーヨーによって繰り返してください。
import com.flashdynamix.motion.TweensySequence;
var sequence:TweensySequence = new TweensySequence();
sequence.push(myInstance1, {x:200, y:200}, 1);
sequence.push(myInstance1, {x:500, y:250}, 1);
sequence.push(myInstance1, {x:0, y:0}, 1);
sequence.start();
シーケンスに追加された位置の各々間に移動するために1秒を要するmyInstanceのTweenSequenceを作成します。
ふぅ~。。終了!!
おかげでなんとなく理解したようなかんじ!
今度は実際にやってみよー
関連する投稿
- Comments: 0
- Trackbacks: 5
WordPressプラグインのまとめをさらにまとめる
- 2008-06-17 (火)
- wordpress

↑lightbox2
今日はプラグインについてです。
WordPressにはさまざまなプラグインが用意されていて、内容もとても充実しています。
自分が欲しいプラグインを探すために使用したサイトをまとめときます。
WordPressプラグイン一覧
カテゴリ別にたくさんのプラグインがまとめてあります!
新しいサイト、わーどぷれすっ!も注目!
WordPressのお気に入りプラグイン36選 -2007年8月版 | コリス
よく使用するプラグインを抜き出してカテゴリ別にまとめてくれてはります。
280個から厳選された、WordPressの人気プラグイン:Top30
→さらに絞り込み | 創造マラソン
プラグインが厳選されていて、初めての人はとりあえずこれだけ入れとけばいいかなって感じです。
個人的には一番参考になった記事です。
<追記>これも見つけました。いい感じにまとまってます。
WordpressのプラグインTOP30
↓自分が今のとこ入れてるもの。
Akismet(規定)
コメントスパム対策のプラグイン
WP Multibyte Patch(規定)
日本語版 WordPress のマルチバイト文字の取り扱いに関する不具合の
累積的修正と強化を行うプラグイン。
Adsense-Deluxe
Google AdsenseをWordPressに導入するプラグイン。
このプラグインが一番有名で最高らしい!?
参考記事:
WordPress Plugins/JSeries » AdSense Deluxe 日本語版
[Wordpress]Adsense Deluxeの設定
Auto-hyperlink URLs
xxx.comなどのURLに自動でハイパーリンクを貼ってくれる
FeedBurner FeedSmith
ブログのFeedをFeedburnerに変換できるプラグイン。
Feedburnerに差し替えることで、
サーバーを移動しても、
RSSのURLが変わらなかったり、
RSSの購読者数などもチェックできて、オススメ!
関連記事:
FeedBurner←ここでまず、ウィザードに従って会員登録を!
iG:Syntax Hiliter
ソースコードをテキストエディタのようにカラー表示してくれ、
その上、行数やスクロールバーもつけてくれるすごく便利なプラグイン。
関連記事:
ソースコードをカラー表示するWordPressのプラグイン
Simple Tags
タグ生成プラグイン。ただ単にタグ付けするだけでなく、
関連記事や関連タグの個数なども表示可能なところが素敵!
WP lightbox 2
サムネイルをクリックすると同じウィンドウにオリジナルサイズの画像を
表示させてくれるという 有名なJavaScriptライブラリをwordpress用に
使いやすくしたもの。超クール!
関連記事:WordPress で lightbox を間単に導入できるプラグイン
たくさんあるのですが、英語のサイトも多く、導入後の設定方法に多少手間取りました・・・。
ググりまくらないといけない感じです。なんで、一応わかりやすい記事のリンクもつけておきました。
関連する投稿
- Comments: 0
- Trackbacks: 0
Home > Tags > まとめ