googleで
カスタム検索
プロフィール

けろ&ひな

Author:けろ&ひな
大阪在住。
親ばか。
最近、転職したよ。でも、やってることは一緒なんだけどね。;-P

最近の記事
カテゴリー
月別アーカイブ
最近のコメント
最近のトラックバック
スポンサード リンク

スポンサーサイト--------(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[flash lite2.0][as2]Lite2.0ではColorTransformは使えない。。。2009-11-29(Sun)

Flashのas2でMovieClipの色変更を行う場合、ColorTransformを使います。
import flash.geom.ColorTransform;
//_mcを対象のMovieClipとする
var colorTrans:ColorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, 0);
colorTrans.redOffset = 128; //赤
colorTrans.greenOffset = 128; //緑
colorTrans.blueOffset = 255; //青
_mc.transform.colorTransform = colorTrans;


ですが、FlashLite2.0ではColorTransformは使えません。
だから、クリスマスツリーの待受では背景色の変更はColorクラスを使ってMovieClip.setTransform()でやった。(ほとんどリファレンスからパクリました。)
var r:Number = 128;  //赤
var g:Number = 128; //緑
var b:Number = 255; //青
var color:Object = {red:r, green:g, blue:b};
colorTransform(_mc, color);
----------
private function colorTransform(_mc:MovieClip, color:Object):Void
{
var my_color:Color = new Color(_mc);
var myColorTransform:Object = { ra: 0, rb: color.red, ga: 0, gb: color.green, ba: 0, bb: color.blue, aa: 0, ab: 255};
my_color.setTransform(myColorTransform);
}
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

[flash lite2.0][as2] 待ち受け(修正)2009-11-27(Fri)

クリスマスツリー(修正画像 )

先日作った、待受用Flashを一部修正。

背景の色を現在時間で変更。
1分おきに車が横切るように変更。

そんだけ。

テーマ : プログラミング
ジャンル : コンピュータ

[flash lite2.0][as2]待ち受け:その12009-11-25(Wed)

ツリー画像 とりあえず、この前から作ると言って、作ってなかった待受用Flash。
 季節的にクリスマスツリー風にしてみました。
 動きは、Tweenでツリーの揺れと自前Clockクラスを使用して電飾(?)の点滅をやってます。
 電飾の点滅は、1分おきにツリートップの☆の色を変更、1秒おきに電飾を点滅。
 色は、青→赤→黄の順に変わっていきます。

 で、Tweenクラスで気づいた点。

 Tweenクラス使って、MovieClipの_rotationを変化させる場合のローテションは「対象とするMovieClipの(x:0, y:0)が基点となる」ということ。
それに気づかず、最初はなんか変な動きするなぁとあれこれ試して時間がかかりました。

ということで、画像とリンクをのっけときます。

テーマ : プログラミング
ジャンル : コンピュータ

[flash lite2.0][as2]setIntervalが実行されない・・・2009-11-18(Wed)

先日作ったClockクラスを別クラスから呼び出す形でテストしてて気づいた。

ClockクラスのstartClockメソッドを別クラスからキックするとstartClockメソッド内のsetIntervalが実行されてない。。。

実行されてない状態のときのmainはこんな感じで呼び出してた。
・・・
private function hoge():Void {
var clock:Clock = new Clock();
clock.startClock();
}

この状態だと、clock.startClock()は見た目は正常に実行される。
だけど、startClock内にあるsetIntervalは実行されていない。
ちなみにstartClock内のsetIntervalは
・・・
private var intervalId:Number;
public function startClock():Void
{
intervalId = setInterval(this, "fuga", 100);
}

みたいな感じ。

なんでかはよく分からないけど、clock.startClock()をDelegateする形で実行するとsetIntervalも正常に実行される。
うーん、、、"this"が思ったところを指していないのだろうか。。。
小一時間ほど、悩んでみた。
・・・
var func:Function = function(){trace("test");}
intervalId = setInterval(func, 100);

上のようにsetIntervalのところを無名関数にして動かしてみると動く。
てことは、setIntervalから呼び出す関数がどうも参照できていない(?)っぽい。
てことで、mainのほうの変数「clock」を外に出してみた。
・・・
private var clock:Clock
private function hoge():Void {
clock = new Clock();
clock.startClock();
}

としてみると、、、動いた。

うーん、、、
勝手な想像だけど、clockが内部変数になってたことでclock.startClockからsetIntervalが実行されても実際にIntervalで関数が実行されたときにはclock変数がメモリから開放されてしまって実行されなくなってたのかなぁ???そうだとしたら、かなり残念な気もするからきっと違うんだろう。。。

まぁ、何が原因かは不明だけど結果オーライ解決かな?

教訓:setIntervalをクラスメソッドで使用するときは、そのクラスのインスタンスはクラス変数で持て。

ということで。

テーマ : プログラミング
ジャンル : コンピュータ

[flash lite2][as2]とりあえず、時間を計る2009-11-16(Mon)

ということで、待ち受け用にとりあえず時計を置こうと。

単純にMovieClipで時計にしてしまってもよかったんだけど、せっかくだから時計単体でスクリプト内でも使えるようにと時、分、秒で時がきたらイベントを発行するようなClockクラスとして作ってみる。

イベントもついでにClockEventとして独自のイベントクラスを作成。
とはいっても、定数があるくらいのすごく単純なイベントクラス。

Clockクラスはイベントを発行するということで、単純にEventDispatcherを継承。
コンストラクタで EventDispatcher.initialize(this) として、EventDispatcherを初期化。
時間を計るのにはsetIntervalを使用。
(基本的にスクリプトをflaファイル内にできる限り書きたくない人なので、onClipEventやonEnterFrameは使いません。。。)

なので、マシン(携帯)の状態によっては秒のカウントが取れない可能性もあるかなと。そのへんは業務でもないんだし適当(笑。

最初に発行したsetIntervalをそのまま使い続けたら、誤差がどんどんでかくなっていきそうなのでイベントを発行するタイミングでIntervalを再設定する。

時、分、秒、それぞれでイベントを発行するってことで時間の管理を分ける必要があるかなと。

子供の相手をしながら試行錯誤して完成しましたー。

とりあえず作ったのは、
lib.events.ClockEvent
lib.comp.Clock
の2つ。

使う際はこんな感じで
import lib.events.*;
import lib.comp.*;

var clock:Clock = new Clock();
var f:Function = function(e:ClockEvent):Void
{
trace("time:"+e.type+":"+e.value);
}
var listener:Object = new Object();
listener.second = f;
listener.minute = f;
clock.addEventListener(ClockEvent.SEC, listener);
clock.addEventListener(ClockEvent.MIN, listener);
clock.startClock();


ClockとClockEventのソースは、いるって人がいれば、、、かな。

テーマ : プログラミング
ジャンル : コンピュータ

工事中
RSSフィード
リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。