2009年11月30日 星期一

鐘擺運動

想表現的是以下效果...














這次的困難點是擺盪時的數度變化
因為flash的MovieClip物件本身就有提供 rotation 這項物件旋轉的功能
所以在描述時就簡單多了
可以想成如下圖









....
總之程式大致是這樣...
(若要使用 需要把全行空白替換掉)

//創造一個容器並繪製圖像
var ObjBox = new MovieClip();

ObjBox.name="ObjBox";
ObjBox.Pic = new Shape();
ObjBox.Pic.graphics.beginFill(0xFFCC00);
ObjBox.Pic.graphics.lineStyle(0,0x666666);
ObjBox.Pic.graphics.moveTo(0,0);
ObjBox.Pic.graphics.lineTo(0,60);
ObjBox.Pic.graphics.moveTo(0,60);
ObjBox.Pic.graphics.lineTo(40,120);
ObjBox.Pic.graphics.lineTo(-40,120);
ObjBox.Pic.graphics.endFill();

ObjBox.x=100;
ObjBox.y=100;

addChild(ObjBox);
ObjBox.addChild(ObjBox.Pic);

MouseTouchObj(ObjBox,true);//導入
function MouseTouchObj(MC:MovieClip,BtnMode:Boolean=false){
 MC.buttonMode=BtnMode;//讓手指出現
 MC.addEventListener(Event.ENTER_FRAME,RotaDo);
 MC.TM_MovePower=0;
 MC.SP=5;//引力動量
 MC.SP_N=2;//引力差
 MC.SError=0.5;//停止誤差
 MC.MousePower=0;//滑鼠力量
 MC.addEventListener(MouseEvent.ROLL_OVER,ROLLDo);
 function RotaDo(e){
  var TempMC = e.currentTarget;
  TempMC.TM_X=mouseX;
  //==========Action
  if( (TempMC.TM_MovePower==0 && (TempMC.rotation==0 ||TempMC.rotation==undefined)) == false ){
   TempMC.TM_MovePower += -1*(TempMC.rotation/180) * TempMC.SP_N * TempMC.SP;
   TempMC.rotation+=TempMC.TM_MovePower;
   TempMC.TM_MovePower*=(39/40);
   //===
   if(TempMC.SError>Math.abs(TempMC.TM_MovePower) && TempMC.SError>Math.abs(TempMC.rotation)){
    TempMC.TM_MovePower=0;
    TempMC.rotation=0;
   }
  }
 }
 function ROLLDo(e){
  var TempMC = MovieClip(e.currentTarget);
  if(TempMC.TM_X==undefined){TempMC.TM_X=mouseX}
  if(TempMC.rotation<25 && TempMC.rotation>-25)
   var TempN = TempMC.TM_X-mouseX;
  if(Math.abs(TempN)>5){
   TempMC.MousePower = TempN;
   TempMC.TM_MovePower += int(20 * (((TempN)<0) ? -1*Math.sqrt(-1*TempN/10) : Math.sqrt(TempN/10)))/20;
  }
 }
}

2星期前的鐵馬行

距今兩個禮拜前的星期六
與弟弟兩人騎腳踏車上鳶嘴山
平地時都還好...
走大雪山林道就真的很辛苦了

尤其是這次輕裝上陣(連水都沒帶)
差點在路上渴死 & 餓死!
路上ㄧ家店都沒有!(賣柿子的到很多)

也因如此
我們12點到登山入口就速速折回了!

在路上有碰到許多有趣的事
在此就用照片簡單帶過吧!

>>==================================<<















這條路上到處都在賣柿子!

快餓死之際就是靠這撐下去的 !! \(@口@)/

PS.賣柿子的阿婆看我們這麼拼命 便宜的賣我們呢!!
--------------------------------------------------------------


















柿子樹上有蛇?
而且還是百步蛇!
.....
靠近一看才知道是假的
可能是這塊地的主人用來下鳥用的吧!
PS.他頭是圓的
--------------------------------------------------------------
















這天山路上起霧!
能見度約15m
全程景色美到不行~
再付幾張夢幻的景色....













































這張是佈滿整片天空的蜘蛛網
別看他這模樣...
在太陽與霧氣的點綴下金光閃閃呢!
--------------------------------------------------------------
















弟弟在路旁撿到根竿子....
接下來...
















撐竿跳... @_@ |||
--------------------------------------------------------------
















最後附一張....
....
...
...
...
正在小解的照片..

2009年11月9日 星期一

背景圖片位移套用滑鼠在螢幕上的百分比!

#設計概念
讓圖片X軸的位移對應滑鼠在螢幕上的百分比



















(以上為動作意示圖)

#實作
在實際運算時...背景圖片是必須減去視窗寬度
剩餘的像數再去套用滑鼠在螢幕上的百分比


應此..運算公式為:
背景應到位置 =  - (圖寬-視窗寬) * (滑鼠值/視窗寬)
最後再導入位移緩衝的計算公式即可
背景目前位置 += (背景應到位置 - 背景目前位置) / 緩衝值

#程式
//----共用參數
var WMousePa = mouseX / stage.stageWidth;

var MC_MoveFPS=5;
//----監視滑鼠在視窗上的%數
stage.addEventListener(MouseEvent.MOUSE_MOVE,Fun_MouseXPa);
function Fun_MouseXPa(e:MouseEvent){
    WMousePa = mouseX / stage.stageWidth;
}
//----使背景套用函式
FollowMouse(MC1);
FollowMouse(MC2);
//----對應滑鼠在視窗上%數的監視函式
function FollowMouse(MC:MovieClip){

    MC.addEventListener(Event.ENTER_FRAME,Fun_MCFollow);
}
function Fun_MCFollow(e:Event){
    var MC = MovieClip(e.currentTarget);
    var TempGoalX = -(MC.width - stage.stageWidth) * WMousePa;
    MC.x += (TempGoalX - MC.x) / MC_MoveFPS;
}

2009年11月8日 星期日

Happy Halloween!!

萬聖節前就畫好草圖了!
只是到了今天才完稿....
不是我愛拖!
是手邊的工作真的很多呀~Orz
一天給我48小時吧~


2009年11月7日 星期六

從北京座飛機回來的餅

這餅!來頭不小!!
它是小魚從北京運回來的土產,換句話說這東西是坐飛機過來的啦~
味道很香,隔著塑膠袋都聞的到,但是咬起來...
實在沒味道呀!!
只能說北京人的口味我不太能接受。

看!就是這東西!!



讀書心得:你不能不懂的統計常識

看完這本書後我很高興自己不是糊塗蛋!現在不是,以前也不是。
我很慶幸我總是對別人所說的話抱著一定程度的懷疑,尤其是新聞媒體的數據
比如說香腸有亞硝酸,容易讓人致癌,這樣的研究出爐了!
你不吃香腸嗎?我吃!套用國中生物所學"生物無法接收處理的物質就是毒素"
換句話說什麼東西都不能吃過量。

這本書的目的就是要讓讀者多動腦袋,多多懷疑,不要馬上相信你手上的數據
搞清楚數據來源,其分母、比較、離散族群、因果等
還舉出許多貼切我們生活的例子,並希望讀者能舉一反三,
嘛(這只是語助詞)...我最印象生刻的只有被雷劈的機率小於中樂透這結論。

PS.此書和"如何用數字唬人"有異曲同工之妙。