แฟ้มประวัติリッチインターネットアプリケーションの開発+娘รูปถ่ายบล็อกรายการ เครื่องมือ วิธีใช้

FOX Zhuang

อาชีพ
ตำแหน่งที่ตั้ง
ความสนใจ
The shorter story
No love, no glory ,No hero in my sky
The world is short of love & revolution
ไม่มีอัลบั้มรูป

リッチインターネットアプリケーションの開発+娘

-FLASH-Actionscript-FlashMediaServer-FLEX-DIV-CSS-

..::Welcome to ismoka::..

03 กันยายน

我整个人都阿拉伯了

PICT8458 
沙土乐高城
天朝帝都说自己沙尘闹得厉害,爱基帝都蛋疼了

PICT8467
涛哥御用
亚历山大大学历史系王教授,满腔基情的阿拉伯老师

PICT8504
哈里里~
阿拉伯最大的市场,90%工艺品MADE IN CHINA

PICT8507 
替月行道
阿拉伯人见面就喊Sailor Moon(侬好~)

PICT8506 
老烟枪换新装备
当地人研发了苹果味的轻焦油水烟供老外欢乐

PICT8538 
地标
湿身淫面像比想象中小很多

PICT8606 
无脸见江东父老
阿萌神和拉姆西斯小两口

PICT8632
天朝+泡菜+泥崩
在阿拉伯人的眼中我们就是“欢乐的一家”

PICT8525
骆驼110
所有景点需要安检 所有警察AK47 所有公路需要军队开到护送 和谐的阿拉伯世界

PICT8583 
尼罗河惨案案发现场
听说那块凶器是真品……

PICT8654
撒哈拉
卡塔尔越野赛

PICT8659 
萨达姆的娘舅的表兄的邻居的侄子的同学
阿拉伯游牧民

PICT8662
PINK
娘贵&阿拉伯正太

PICT8674
塔利班合唱团
小罗团长

PICT8663
塔利班萝莉
左边那个……

PICT8577
Excel
不得不吐槽法老这个计数很糟糕

PICT8588
重口味No.1
爱基人民来此祈祷夜生活幸福美满

PICT8742
重口味No.2
公牛乃地中海、姑娘乃亚历山大,爱基人民甚欢乐

PICT8767

满地瓜子壳、比天朝更爱瓜子的国家

PICT8763
亚历山大
那天、那水、那娘

PICT8702
大众甲壳虫
你可以在埃及的高速公上找到60年代的20手车,一天目睹20起交通事故的国家

03 กรกฎาคม

神筆馬娘 AS2.0 手札 第一話

 

落文對象:FLASH Designer , UI Designer , 有一定碼字基礎的院校生 , 對基本的時間軸跳轉函數有一定的了解
落文目的:掌握簡單的FLASH交互技巧

注目:转载请喷明

全篇所有的教程都將通過Q & A的過程來進行推進,第一話我們首先來講述一些起步概念和糾正一些誤解。

Q:我從小數學、碼字過敏,我沒有任何的代碼基礎,學習ActionScript會不會有障礙?

A:雖然現在FLASH的腳本發展的方向越來越向其他標準化的OOP語言靠近,但是ActionScript2.0的出發點依然是通過對舞臺上的對象進行操作,也就是說他的思路還是延續著設計者的思路。這其中包含著層級、組件包含等概念設計上的概念。

KEY:你只需要投入一點小腦經在邏輯關系上就能完成不錯的應用作品,相信腳本語言不會成為你多媒體應用開發的障礙。

Q:居然AS3.0都出來了,為什么我們不一步到位直接學習AS3,而要學習個舊版本的腳本語言呢?

A:如果說從理論上來講很多的AS1的書寫習慣到了AS2依然可以延續的話,那在AS2到AS3的變遷中就沒有那樣簡單。簡單的說AS1、AS2和AS3是完全不同的兩類腳本語言。可以說AS1和AS2依然是面向UI開發人員的多媒體交互程序腳本,那AS3是完完全全的網絡應用腳本。雖然AS2中也有涉及類的概念,但是其中很多做法都是不完善的,很多面向對象的程序員無法將自己在其他程序語言中的經驗遷移到AS2的應用開發中。可是AS3完全的腳本化的開發模式導致原先的FLASH制作經驗全部無用,這也是高性能、高經驗遷移帶來的革命。AS3在開發繁復的RIA應用程序時的確是不二的選擇,我們無法想象用AS2來開發一個龐大的應用需求,但是同理,在制作小的應用項目的時候AS2和UI層工作模式上更圓滑的銜接,將成為所有DESIGNER們的首選。
看過以上這段后如果你依然想把AS3作為你的遠大理想的話,那就請在此打住,不要再閱讀下面有關AS2的任何內容,尋找其他AS3的教程或者等待老娘哪天再鬧抽風出來寫AS3的Q&A。

KEY:相信我,如果你的老板沒有讓你用FLASH開發一個網絡游戲的話,AS2足夠應付你所有的需求。

Q:我之前看過很多AS的教程,其中的各類方法都很混亂,有的將代碼寫在按鈕、MovieClip上有得寫在時間軸上

A:我之前說了由于是從設計者的角度出發,所以AS2的很多代碼都是可以以一些不規范的方法被書寫在各個元件上。但是為了規范,也為了方便工作中其他人員的協作開發,所以本系列的Q&A我們將把所有的代碼全部寫在時間軸上,并且盡量使用一幀來完成所有的應用需求。

KEY:雖然不是專職的碼字人員,但是良好的碼字書寫習慣將讓你受益匪淺。

Q:在學習之前我要準備寫什么東西么?

A:我們用的開發環境是Flash CS3 ,當然FLASH 8.0也可以。

KEY:老娘我很隨便。

Q:囧,吹夠了么,可以開始正文了么?

A:慢點,讓我喝口茶。

KEY:老娘我身體不太好。

 

Now HELL is about the time.

 

Q:我對于play(); stop(); gotoAndStop(); 等時間軸跳轉函數還不太清楚,能不能幫我纖細講講?

A:洗洗睡吧。

KEY:基本的時間軸跳轉函數的應用,請百毒其他非主流教程。

Q:能簡單概述下接下去我們怎么學習么?

A:我們將通過一些的舉例來了解如何:

  1. 用時間軸上的代碼對舞臺上的元素進行控制。
  2. 用按鈕來對舞臺上的元素進行控制。

KEY:這是一切的起步。

Q:我如何改變一個電影剪輯的狀態?

A:一個電影剪輯有許多的狀態屬性,對這些狀態屬性的改變是我們交互的最終目的也是最直接的手段,碼字中這個叫做賦值。

對電影剪輯屬性改變的代碼格式為:
MovieClip._Param = var; 

電影剪輯.屬性值 = 值 ;

房產.價格 = 低;
老婆.消費額 = 低;

下面我們通過改變一個名為 box 的電影剪輯的位置

  1. 在舞臺上畫一個矩形。
  2. 選取矩形,按F8將其變成一個電影剪輯,名為BOX。

     
  3. 選取電影剪輯,在屬性面板中的實例命名處賦予其實例命名 box 。

    這里要敘述下給實例命名的重要性:
    首先有一點,在我們之后的應用中,我們只轉換2種元件:電影剪輯和按鈕。不是按鈕就請轉換成電影剪輯。
    其次如果要對電影剪輯使用腳本操作,就必須先對這個電影剪輯命名,在建立元件時候的名字,系統不認。
  4. 在時間軸上新建一個層命名為AS

  5. 選中AS層的第一鎮,按F9開啟“動作”面板或"Action"面板
    加入以下代碼:
    stop();
    box._x=200;
    box._y=200;
  6. ctrl+Enter測試
    box很歡樂的移動到了舞臺中央

這里我們涉及到了2個屬性值_x和_y,這分別是電影剪輯的2個坐標屬性,你可以很歡樂的調節這個參數的大小來讓box走到畫面上的任何角落。

下面我們來羅列下我們常用的屬性值:

橫坐標:_x     
[范圍:所有實數]

縱坐標:_y     
[范圍:所有實數]

Alpha透明值:_alpha        
[范圍:推薦0-100,也可以超過這個范圍,那是為了做一些特殊的需要但是0以下就都看不見]

可視:_visible     
[參數:true      false     ,這是一個布爾值,只有true 和 false兩個情況,讓電影剪輯可視不可視,不可視的同時,電影剪輯的其他交互相應也被屏蔽]

旋轉角:_rotaion
[參數:所有實數 ,控制電影剪輯的旋轉角度]

寬度:_width
[參數:所有實數 ,控制電影剪輯的寬度]

高度:_height
[參數:所有實數 ,控制電影剪輯的高]

以上是最常用的屬性,如果需要查看所有屬性可以查看幫助手冊,雖然手冊中的屬性解釋比較晦澀,但是你可以點擊屬性名的URL看ADOBE溫柔細致的實例演示。

我順手粘一下吧:

_alpha:Number

影片剪辑的 Alpha 透明度值。

blendMode:Object

此影片剪辑的混合模式。

cacheAsBitmap:Boolean

如果设置为 true,则 Flash Player 将缓存影片剪辑的内部位图表示。

_currentframe:Number [只读]

返回指定帧的编号,该帧中的播放头位于影片剪辑的时间轴中。

_droptarget:String [只读]

返回在其上放置此影片剪辑的影片剪辑实例的绝对路径,以斜杠语法记号表示。

enabled:Boolean

一个布尔值,表示影片剪辑是否处于活动状态。

filters:Array

一个索引数组,包含当前与影片剪辑相关联的每个滤镜对象。

focusEnabled:Boolean

指定是否可以使用 Selection.setFocus() 以编程方式将焦点分配给影片剪辑。

_focusrect:Boolean

一个布尔值,指定当影片剪辑具有键盘焦点时其周围是否有黄色矩形。

forceSmoothing:Boolean

一个布尔值,它确定在缩放通过 loadMovie() 方法添加并与影片剪辑位于同一层次结构级别中的图像时,是否对图像进行平滑处理。

_framesloaded:Number [只读]

从流式 SWF 文件加载的帧数。

_height:Number

影片剪辑的高度,以像素为单位。

_highquality:Number

自 Flash Player 7 后"不推荐使用"。不推荐使用此属性,而推荐使用 MovieClip._quality

指定应用于当前 SWF 文件的锯齿消除级别。

hitArea:Object

将另一个影片剪辑指定为影片剪辑的点击区域。

_lockroot:Boolean

一个布尔值,指定将 SWF 文件加载到影片剪辑中时 _root 引用的内容。

menu:ContextMenu

将指定的 ContextMenu 对象与影片剪辑相关联。

_name:String

影片剪辑的实例名称。

opaqueBackground:Number

由数字(RGB 十六进制值)指定的颜色的影片剪辑的不透明背景颜色。

_parent:MovieClip

对包含当前影片剪辑或对象的影片剪辑或对象的引用。

_quality:String

设置或检索用于 SWF 文件的呈现品质。

_rotation:Number

指定影片剪辑相对于其原始方向的旋转程度,以度为单位。

scale9Grid:Rectangle

矩形区域,它定义影片剪辑的九个缩放区域。

scrollRect:Object

通过 scrollRect 属性,可以快速滚动影片剪辑内容,并具有一个用来查看较大内容的窗口。

_soundbuftime:Number

指定在声音开始进入流之前,预先缓冲的秒数。

tabChildren:Boolean

确定影片剪辑的子级是否包括在 Tab 键的自动排序中。

tabEnabled:Boolean

指定影片剪辑是否包括在 Tab 键的自动排序中。

tabIndex:Number

可用于自定义影片中对象的 Tab 键排序。

_target:String [只读]

返回影片剪辑实例的目标路径,以斜杠记号表示。

_totalframes:Number [只读]

影片剪辑实例中的总帧数。

trackAsMenu:Boolean

布尔值,表示其它按钮或影片剪辑是否可接收鼠标释放事件。

transform:Transform

一个对象,具有与影片剪辑的矩阵、颜色转换和像素范围有关的属性。

_url:String [只读]

检索从其下载影片剪辑的 SWF、JPEG、GIF 或 PNG 文件的 URL。

useHandCursor:Boolean

一个布尔值,表示当鼠标滑过影片剪辑时是否显示手指形(手形光标)。

_visible:Boolean

一个布尔值,表示影片剪辑是否处于可见状态。

_width:Number

影片剪辑的宽度,以像素为单位。

_x:Number

一个整数,它设置影片剪辑相对于父级影片剪辑的本地坐标的 x 坐标。

_xmouse:Number [只读]

返回鼠标位置的 x 坐标。

_xscale:Number

确定从影片剪辑注册点开始应用的影片剪辑水平缩放比例 (percentage)。

_y:Number

设置影片剪辑相对于父级影片剪辑的本地坐标的 y 坐标。

_ymouse:Number [只读]

指示鼠标位置的 y 坐标。

_yscale:Number

设置从影片剪辑注册点开始应用的影片剪辑垂直缩放比例 (percentage)。

好了現在你已經可以對電影剪輯進行代碼操作了,我們接下來就要講解如何使用按鈕來控制發布腳本命令。

KEY:幫助手冊比老娘靠譜的多。

Q:我如何通過點擊按鈕改變一個電影剪輯的狀態?

A:首先我們先說下按鈕觸發腳本命令的格式

按鈕.onRelease = function()
{
腳本命令;
}

//我們天天在用的

開關.onRelease = function()
{
臺燈._亮度=0;
}

電視開關.onRelease = function(){

電視.gotoAndPlay("CCTV");

}

//來個復雜點的
var 女同學A:賤人;
var 男同學A:賤人;
var 劉淑珍:loli;
var 男同學A.俯臥撐計數:Number = 0;

男同學A.function 開始做俯臥撐()
{
男同學A.onEnterFrame=function()
{
男同學A.俯臥撐計數+=1;
if(男同學A.俯臥撐計數==3){
劉樹珍.gotoAndJump(“河”);
}

}
}:

劉樹珍.function gotoAndJump(Where:Place){
this.Moveto(where);
this.jumpinto(where);
男同學A.停止做俯臥撐();
男同學A.撥打電話呼叫別人();
女同學A.撥打電話呼叫別人();
};

女同學A.onRelease = function()
{

男同學A.開始做俯臥撐():

}


其次是對上面個問題的一個擴充,一個電影剪輯的屬性不但可以賦予同時也可讀取,這里并可以實現一個需求:

box._x=200;
box的橫坐標為200

box._x=box._x+50;
box的橫坐標增加50
也可以寫成 box._x += 50;

好,還是剛剛上面的那個案例

我們再新建一個層名為BUTTON
在這個層上繪制一個矩形
將這個矩形選中,F8->轉換為按鈕->實例命名為"Button_01"
點擊as層的第一鎮 F9 打開動作面板

增加一下代碼:
Button_01.onRelease = function()
{
box._x += 50;
}

測試影片吧。

KEY:熟練應用以上內容你已經可以應付很多應用了。