发新话题
打印

[教程] AS3版--(收藏整理部分难找AS优秀教程-新手必看)

本主题由 一张纸条 于 2008-7-11 09:16 解除高亮
FLASH实现打开一个制定的新窗口
. q5 a  R/ L- i9 g/ j/**********************************************************
) T  I0 k* h$ b/ ~# |2 f# ?***在Flash中打开一个定制的浏览器新窗口***6 w+ V% N% {1 M' Z  }. [# O
***********************************************************/
2 ]+ `( x  S% ~$ o                        var saveBtn:Sprite = new Sprite();7 J( M# E; _8 k
                        saveBtn.buttonMode=true;$ _  l1 [/ \; |" ?4 s
                        saveBtn.x = 10;
5 i2 Z+ {# ^& v) C& A                        saveBtn.y = 80;1 ~* A& h* w2 b, Q) R% J
                        saveBtn.useHandCursor = true;
8 K% o5 x9 E5 I                        saveBtn.graphics.lineStyle(1);
6 M* ^( w9 Q/ k( }. M+ f4 D& F6 _                        saveBtn.graphics.beginFill(0x999999);. R& P  J! b' J. M  K& s- f
                        saveBtn.graphics.drawRect(0, 0, 30, 20);1 A% U2 R7 T0 n: b" E9 H
                        addChild(saveBtn);% \9 T. K% Q/ p+ ]: @$ l$ d! V- {
                        saveBtn.addEventListener(MouseEvent.CLICK,onClickHandler);
( x0 W1 R6 A: R- B* t5 e3 s+ Cprivate function onClickHandler(evt:MouseEvent):void{
4 L% X; ~8 K0 s! s8 C6 A; _                        var __url:String="http://www.52ria.com";
$ s: Z2 ~+ h# g, v                        var __urlrequest:URLRequest=new URLRequest(__url);
) z/ B6 f/ }* F                        navigateToURL(__urlrequest);
" n0 Z( f/ z+ J2 ?) F4 F5 Z. q                }
/ `. o# h) ~; g) z" ~; Z4 R' m9 r: M4 n* T2 l+ m) V0 q* }6 q) j/ y
[ 本帖最后由 C.Xiao 于 2008-7-4 23:40 编辑 ]

TOP

Loading制作资料
, s0 ~5 U) {5 O+ I
Loading的制作都是使用这些AS,那些样子不同的Loading只是表现手法不一样,AS都是大同小异的,自己看看就明白了
& e2 H2 d6 F3 l, ]) U! u
' c9 o( h4 y' p8 _; u+ l1 Apackage {, A2 O  {( F/ y
import flash.display.Loader;
1 x, k4 b+ w* G. |3 F9 kimport flash.display.Sprite;
5 f+ X' T) K! M. f) n( Q3 n* Wimport flash.events.*;
) b+ [; P' e2 G, W' G8 Cimport flash.net.URLRequest;
% q' a* S+ {; D1 [2 N2 vimport flash.text.*;1 D! E4 n  U+ v  d: J
import flash.display.LoaderInfo;
( W9 {3 s2 d  ?9 oimport flash.display.Graphics;0 F% Z8 [+ ~* p5 ^, t
public class Exam extends Sprite {
1 G" K; e1 b8 p& i0 @  private var [url=String]url:String[/url] = "aa.jpg";1 [  n( x) Z% C  y
  private var __txt:TextField;* ^1 \  i. B4 o, h; n1 G" p
  public function Exam() {6 i6 Q* O( |! `: X
   __txt=new TextField();
- s) s7 [" E" E0 t# v  E   addChild(__txt);
5 s  @+ _+ s+ Y7 ^, Z   __txt.type=TextFieldType.DYNAMIC;//创建文本的类型
& g# `. ]1 o: E, N, B* q# \   __txt.width=255;
7 K+ o$ L( {0 h0 W, x* P6 L' I   __txt.height=50;
( l5 f# v7 |6 f- {   __txt.name="mytxt";
6 o0 D. w: ~2 _) M. w5 v: J   __txt.multiline=false;( h! N8 V$ z; {4 b" |. a  {
   __txt.x=10;- r( s7 h( g* w; |' E2 f$ A
   __txt.y=250;
9 R: r5 i/ Y6 H: g1 \* W   __txt.background=true;
3 h, C! m3 P: u; h   __txt.backgroundColor=0xeeeeee;
/ X2 Z2 J3 F0 M- W5 g; q& f   __txt.border=true;' u$ i3 Y* {4 y
   __txt.borderColor=0x999999;
" @0 `0 A4 t- p$ h; \2 Y" p   __txt.wordWrap=true;//自动换行( Q- W& B& T$ @0 b* a
   var loader: Loader = new Loader();! n+ {" P( o% W+ p5 a
   loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);2 F& K; K# Q) J$ L8 t
   var request:URLRequest = new URLRequest(url);0 _& V' I1 U3 J( f% I4 T
   loader.load(request);
, h& U4 M/ g! W" b: D& m7 m   addChild(loader);
0 U5 H$ q/ k5 Y$ E% r9 |2 b# b  }1 P; ?0 D9 @; L* b
  private function progressHandler(event: ProgressEvent):void {
! {5 o7 J5 H. X& x   var percent:Number=event.bytesLoaded/event.bytesTotal;* X( n/ `5 R* D+ i: R8 o
   percent=int(percent*100)/100;6 C9 x# j# C. \* p8 @
   __txt.text="完成"+percent*100+"%"+"   已下载:"+event.bytesLoaded+"/总字节数:"+event.bytesTotal;
2 ?4 w9 W/ o. T" t- z   graphics.clear();: x. P$ M- O- E# u
   graphics.beginFill(0x666666);
: x7 e$ E) i" {   graphics.drawRect(10,220,percent*200,10);
" a! t1 _7 j& n7 l$ N9 I5 _* x+ l   graphics.endFill();) o0 X3 Q# i" }
  }' |* H( ?% V1 ^; c4 x! l3 z7 C% v7 Q
}: N/ I  I# Y/ j7 U7 b7 m2 l7 }
}  d1 P3 m% `7 t4 g4 ~2 V
如果我们想知道当前的加载进度,并想把它像AS1,AS2一样写在帧上.我们可以像以下这样写; I! O* i1 k3 d$ K
stop();
/ d; N/ P7 `/ f' Lvar txt=new TextField();
9 P6 V. ^, G: R' [% stxt.text="AS3 Loading...";
% ~% N3 ~( @# W0 mtxt.textColor=0x000000;8 s5 M# G& @6 K, W2 x0 T0 e9 g
txt.selectable=false;- m% G9 n; u6 c: j$ y# [1 H3 ]
txt.x=10;
$ f7 s( w  V. J8 [, M0 N& ~$ Atxt.y=10;% u: ?1 {4 F  \9 p
addChild(txt).name="txt";
# ?% i+ L* ^$ a4 P' J6 j' ~var loadbar=new Sprite();0 q7 w$ Q' ~& h
loadbar.graphics.lineStyle(1,0x000000,1);
# ]$ O( A& c3 F: H7 j- Bloadbar.graphics.beginFill(0x666666,.5);( s8 d, G2 o3 o' ~+ J
loadbar.graphics.drawRect(0,0,200,10);
* h! T: f0 i0 {% ~( nloadbar.graphics.endFill();
+ ~1 j/ l3 {2 I  D& ~" l" G: @0 |& Lloadbar.x=10;
8 t5 Q/ {' ^; b2 a% l$ S; Vloadbar.y=30;
) X1 y* b3 K0 k4 faddChild(loadbar);
; R. K. u% Z1 w+ E6 Z) C5 ^6 |1 H1 M0 r
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loading);& N7 A7 _& y+ S3 F! U0 }- ]
this.loaderInfo.addEventListener(Event.COMPLETE,loaded);" v- d/ l- K- o; i
function loading(eve) {" c5 L/ c/ V, x+ g
var loadpre:int=eve.bytesLoaded/eve.bytesTotal*100;
2 o% H  b, Z' w6 P: F txt.text="影片载入"+loadpre+" %";
3 x& Y$ B- u& W" l4 x5 `" B  n loadbar.scaleX=loadpre/100;
5 G8 v: p& ^2 I: v}' J4 G% w1 @3 m
//显示进度载入百分比-----, E: l9 G) ?3 r$ ?
function loaded(eve) {
* r1 A1 N; @" z- r" \ txt.text="影片载入完毕!";
6 H" B' z3 d, G( a) \1 S}. z/ c9 u2 F# S: u" P6 ?( F

; O3 Q, [; Y0 H# l[ 本帖最后由 C.Xiao 于 2008-7-4 22:59 编辑 ]

TOP

用鼠标画线$ P9 o9 T) n0 |+ z/ ~+ k
package {: X7 g! c. Y* j5 e  M
        import flash.display.Sprite;* U' s+ @. e; `" L1 y
        import flash.events.*;2 ?7 u" |# i% D3 q

* q# x7 x* A7 R- J! [        public class Exam extends Sprite {
: s3 S7 f$ t- Z# |0 J                private var is_drawing:Boolean = false;
6 k4 z/ q4 w6 g2 A  B3 g                public function Exam() {
1 n: f, ^5 N! m4 H                       
+ \$ r6 Y# N, a                       
* E' M( H/ G! i0 R! Y$ Y9 `                        stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler);" I6 A5 |4 c) g: v. r
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler);
5 r, b" n. V. z                        stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler);1 D4 J5 q8 ]$ W% o( T" p
                }
+ y% S4 m2 Z" t                private function onMouseDownHandler(event:MouseEvent):void {  p2 H/ l3 `, ~7 m9 Q/ X5 {
                        is_drawing = true;; u9 K; `! z& k0 l0 T
                        graphics.lineStyle(0,0,100);
; T/ I1 ^4 l& s! d                        graphics.moveTo(mouseX, mouseY);
! b# S. h6 Z3 y7 t                }# U7 W' m5 X2 A3 G  s8 C
                private function onMouseMoveHandler(event:MouseEvent):void {
, m4 E3 g2 f- e                        if (is_drawing) {
( r* x7 N% O0 x! T  ~                                graphics.lineTo(mouseX, mouseY);
8 R7 j: D1 d" A# e( S                                event.updateAfterEvent();///强制更新舞台
4 b. N8 W" v* L; V/ p                        }7 ]: k, w( t1 B8 X( _7 v% @
                }) x+ P3 n' {& s. h' J
                private function onMouseUpHandler(event:MouseEvent):void {
7 O7 |+ m! b- F                        is_drawing = false;
6 h" B  z/ M* S( \                }
: q; x1 \3 d) H7 s7 k        }7 n. f9 K- k, O& |
}

TOP

/************************
) Q' \, O5 b& M) [3 L***enterframe事件***
: x- J: {/ U: ?2 b*************************/) \4 i! {2 T! ]5 W( l
mc.addEventListener(Event.ENTER_FRAME,onEnterFrame);% S# V7 G4 e! F5 s8 r& _5 l+ z
private onEnterFrame(event:Event):void{" l: {  k1 C- ^  K1 X1 Q+ u
                        mc.x++;8 R. [0 [0 d1 u& D5 K
                }

TOP

版本的有关信息显示:
+ e& [( d$ \9 x; Q" F属性 定义方 6 Z5 r; W4 f0 m* \$ j7 \4 c
    avHardwareDisable : Boolean
( v4 s- m& W0 D. n* a[static] [read-only] 指定对用户的摄像头和麦克风的访问是已经通过管理方式禁止 (true) 还是允许 (false)。 Capabilities
7 n5 p, L4 \& j9 K   constructor : Object % Z1 X7 J; M! h# ]* D3 Q* v
对类对象或给定对象实例的构造函数的引用。 Object " J" n& y4 S' M
    hasAccessibility : Boolean ; P; E. Z9 B- ]% G* h1 B
[static] [read-only] 指定播放器是在支持 (true) 与辅助功能进行通信的环境中运行,还是在不支持 (false) 这种功能的环境中运行。 Capabilities * h4 N; H% |: q2 ?1 H9 O  c
    hasAudio : Boolean
. U- Y' X4 I# s8 t[static] [read-only] 指定播放器是否在具有音频功能的系统上运行。  Capabilities
" T/ P. j" F0 X9 \2 B5 G    hasAudioEncoder : Boolean 4 ?- `$ r* R9 r2 Z' c5 {
[static] [read-only] 指定播放器能 (true) 还是不能 (false) 对音频流(如来自麦克风的音频流)进行编码。 Capabilities 6 [" ~, z+ c& y9 `3 F1 U
    hasEmbeddedVideo : Boolean
+ Q- A" D; e" p# Z0 s, P9 C[static] [read-only] 指定播放器是在支持 (true) 嵌入视频的系统上运行,还是在不支持 (false) 嵌入视频的系统上运行。 Capabilities 0 R. y# a5 q2 \! h2 O6 l
    hasIME : Boolean 1 {! T9 Z+ S2 O
[static] [read-only] 指定播放器是在安装有 (true) 输入法编辑器 (IME) 的系统上运行,还是在未安装 (false) IME 的系统上运行。 Capabilities   l& a5 K/ X2 q2 Q6 P% Y
    hasMP3 : Boolean * l1 o& ^, a. S) E# a( N" e
[static] [read-only] 指定播放器是在具有 (true) MP3 解码器的系统上运行,还是在没有 (false) MP3 解码器的系统上运行。 Capabilities
! G+ R2 C; |) h' ?2 D    hasPrinting : Boolean ' M- O/ M. Z. {) `5 V" ]
[static] [read-only] 指定播放器是在支持 (true) 打印的系统上运行,还是在不支持 (false) 打印的系统上运行。 Capabilities
6 V8 I8 _- w8 P- F' i    hasScreenBroadcast : Boolean 2 Q/ A7 T& d" q5 Z+ x
[static] [read-only] 指定播放器是支持 (true) 开发通过 Flash Media Server 运行的屏幕广播应用程序,还是不支持 (false) 开发这类应用程序。 Capabilities
+ l8 P) A7 K* e8 v) D2 J0 R    hasScreenPlayback : Boolean : N! h" e) D% i2 o0 M* A" n
[static] [read-only] 指定播放器是支持 (true) 通过 Flash Media Server 运行的屏幕广播应用程序的回放,还是不支持 (false) 这类应用程序的回放。 Capabilities
# O: ?! Q" M1 Z. h7 Q# Z, C    hasStreamingAudio : Boolean
( b- N& W, u8 ?' f6 }+ ]! i+ h& c2 z[static] [read-only] 指定播放器能 (true) 还是不能 (false) 播放音频流。 Capabilities ) q8 G7 T+ }+ D2 c4 j. C6 K: {
    hasStreamingVideo : Boolean 1 a, ~+ \' C; u: ?$ B/ \
[static] [read-only] 指定播放器能 (true) 还是不能 (false) 播放视频流。 Capabilities
, S  Y" l0 H+ [9 }- [( |    hasTLS : Boolean
& H- P% z# m$ Q$ S' z[static] [read-only] 指定播放器是 (true) 否 (false) 位于通过 NetConnection 支持本机 SSL 套接字的系统上。 Capabilities - g, h2 L' v& ?
    hasVideoEncoder : Boolean 5 s$ G1 V: e! C! E2 i9 \9 ]
[static] [read-only] 指定播放器能 (true) 还是不能 (false) 对视频流(如来自 Web 摄像头的视频流)进行编码。 Capabilities
7 W& v& j& J7 P$ |    isDebugger : Boolean
& m% p7 b; n1 e: Y0 A[static] [read-only] 指定播放器是特殊的调试版本 (true),还是正式发布的版本 (false)。 Capabilities
% l% B; V) q; a" D3 r    language : String ; ^! J1 q) m; f( v, E4 V
[static] [read-only] 指定运行播放器的系统的语言代码。  Capabilities
' k, U0 ~, b* A6 n" I    localFileReadDisable : Boolean   T" v& X' Q9 g
[static] [read-only] 指定对用户硬盘的读取权限是已经通过管理方式禁止 (true) 还是允许 (false)。 Capabilities / _, X1 J' n, \
    manufacturer : String
$ H/ k/ _; B" E  t1 x[static] [read-only] 指定 Flash Player 的制造商,其格式为“Adobe OSName”。 Capabilities
$ Y/ v  J! }0 R2 I  i    os : String
" [: N' ?1 J3 m7 ]5 T+ U[static] [read-only] 指定当前的操作系统。  Capabilities " p1 e7 G; b) `+ d1 P& `+ f
    pixelAspectRatio : Number
0 Q" }' D2 i3 G- j1 k[static] [read-only] 指定屏幕的像素高宽比。  Capabilities & B. Y- _% J/ q1 L& `9 a
    playerType : String 5 q& ^8 M& t7 ]" p1 k! I
[static] [read-only] 指定播放器的类型。  Capabilities
" Y) [( w& r2 X- b- }   prototype : Object
: O3 X+ d0 _7 z  V! ][static] 对类或函数对象的原型对象的引用。 Object 1 [3 d( i( P  i" Q; M: U! a6 h
    screenColor : String
, v( Y6 R2 m/ Z* `5 U9 p# i9 U" t[static] [read-only] 指定屏幕的颜色。  Capabilities   `/ P4 y; L( {! a7 d
    screenDPI : Number
% M6 z& {4 @4 z, h! @1 q: ?# _[static] [read-only] 指定屏幕的每英寸点数 (dpi) 分辨率,以像素为单位。  Capabilities
( P6 F! D+ U; y9 p/ \$ l# {% ~! ]) I    screenResolutionX : Number ( i3 V# M9 J- W' Q  m/ P3 U4 Z3 f- d
[static] [read-only] 指定屏幕的最大水平分辨率。  Capabilities $ M& |8 a; a) _# G( u  ~  x
    screenResolutionY : Number 0 a' x+ _8 d8 T9 }* z) K/ s! l, h
[static] [read-only] 指定屏幕的最大垂直分辨率。  Capabilities
1 [) {; N# }6 G6 J    serverString : String 8 h# D- N# j4 q0 p
[static] [read-only] URL 编码的字符串,用于指定每个 Capabilities 属性的值。 Capabilities
8 v8 u4 w, Y/ t: m; \! \0 z1 A# q9 o    version : String " Q, @* q& H' r+ q5 [
[static] [read-only] 指定 Flash Player 平台和版本信息。
& J8 j1 j& y, f9 j. Y; P6 v+ n. D0 D' H$ q3 c
package {
/ ~$ U* W% ~# j; T( t/*         */ - }5 G5 r, P' `- w4 ~8 y. m" B. N
5 M- N( N+ k, |3 m
    import flash.display.Sprite;
) }4 p% K$ m) W    import flash.system.Capabilities;; {' b& t/ c9 N, j' {
8 D+ i, N! Y. y
    public class Exam extends Sprite {
  c! [0 d; N# M9 C1 l; o7 F. \( \        public function Exam() {8 h1 [9 ~  q6 j
            showCapabilities();1 E$ S" T$ h( z0 Q+ S. U
        }. A6 ^- q6 x1 F2 k6 p3 ?
        , ]) C( `) Q4 G3 E/ [' c
        private function showCapabilities():void {
1 l" ?! r" L7 ^! ~3 X8 b5 h            trace("avHardwareDisable: " + Capabilities.avHardwareDisable);
+ M' v3 E; t; y; Q1 X            trace("hasAccessibility: " + Capabilities.hasAccessibility);; U! w0 I5 h; T, H' U7 O* w
            trace("hasAudio: " + Capabilities.hasAudio);$ T2 Q/ p% w# ^
            trace("hasAudioEncoder: " + Capabilities.hasAudioEncoder);* I7 m( {& T6 `9 z* X# J
            trace("hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo);$ b3 X: {. q9 d: ?7 r
            trace("hasMP3: " + Capabilities.hasMP3);3 g' X  r9 ?( r$ t5 I3 u! {
            trace("hasPrinting: " + Capabilities.hasPrinting);* M6 J  i- L: J9 c, l
            trace("hasScreenBroadcast: " + Capabilities.hasScreenBroadcast);
( f0 o5 b- o9 F' w            trace("hasScreenPlayback: " + Capabilities.hasScreenPlayback);3 |: w7 F' {) y( k0 L4 X
            trace("hasStreamingAudio: " + Capabilities.hasStreamingAudio);
; w. e, t0 z2 B! C+ K) S6 z+ I! k6 r            trace("hasVideoEncoder: " + Capabilities.hasVideoEncoder);
1 A5 y( R; v* w) A1 D            trace("isDebugger: " + Capabilities.isDebugger);4 \3 Z/ r' W: v3 P: G0 I7 {5 {
            trace("language: " + Capabilities.language);
" r5 F9 f% ^, W8 ]: p& |            trace("localFileReadDisable: " + Capabilities.localFileReadDisable);
' j! ]3 m: p3 h' J" j            trace("manufacturer: " + Capabilities.manufacturer);1 W8 ~% z0 N4 t: ?& E. j
            trace("os: " + Capabilities.os);
) N) e$ n' F6 m" K; e            trace("pixelAspectRatio: " + Capabilities.pixelAspectRatio);
# U; L. q0 B, a) n( C+ a4 B% z" a6 r            trace("playerType: " + Capabilities.playerType);
, e8 G3 a9 r0 a/ e0 _# }# v7 v) Z2 o9 U            trace("screenColor: " + Capabilities.screenColor);
: H6 Q% [! h' J2 ~) N% @            trace("screenDPI: " + Capabilities.screenDPI);
$ l" {" Q# \0 r            trace("screenResolutionX: " + Capabilities.screenResolutionX);
) P# m5 i: W( a' d            trace("screenResolutionY: " + Capabilities.screenResolutionY);
- ]* s! X* w3 a/ B            trace("serverString: " + Capabilities.serverString);9 c& j+ }0 ?# f' ~, F" _
            trace("version: " + Capabilities.version);
" R, d- y; l& g        }1 V$ I- f2 ~' A# o; x" P
    }/ n9 v! {/ O# m" G0 C- P
}/ z! K9 P) e3 V/ D0 \9 M

6 X" S9 ~5 j2 {" D: m7 _" {  \[ 本帖最后由 C.Xiao 于 2008-7-5 23:02 编辑 ]
本帖最近评分记录

TOP

发新话题