FOX's profileリッチインターネットアプリケーションの開発+娘PhotosBlogLists Tools Help

FOX Zhuang

Occupation
Location
Interests
The shorter story
No love, no glory ,No hero in my sky
The world is short of love & revolution
There are no photo albums.

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

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

..::Welcome to ismoka::..

September 14

绘腹黑娘

girl_zoomin 

腹黑美啊………………

September 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起交通事故的国家

August 02

老板們的風采 NO.2

betty
betty_ori
貝勒爺

LiangAojiao
large_1353j150 
梁傲嬌

July 30

老板们的风采

CROW
main_7369a169

鸟老板


rocky
main_1164m169

熊老板

July 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:熟練應用以上內容你已經可以應付很多應用了。