AS3学习笔记

变量定义  var value2:Number = 17;

事件处理:  1 定义函数  2. addlistener(该函数)

例:按钮点击事件处理

  function eventResponse(event:MouseEvent):void 
  { 
  // Actions performed in response to the event go here. 
  } 
   
  myButton.addEventListener(MouseEvent.CLICK, eventResponse);

导航按钮:

  function gotoAdobeSite(event:MouseEvent):void 
  { 
  var adobeURL:URLRequest = new URLRequest("http://www.adobe.com/"); 
 navigateToURL(adobeURL); 
  } 
   
  linkButton.addEventListener(MouseEvent.CLICK, gotoAdobeSite);


创建对象实例

  var someNumber:Number = 17.239; 
  var someNegativeInteger:int = -53; 
  var someUint:uint = 22;

  var raceCar:MovieClip = new MovieClip(); 

  var birthday:Date = new Date(2006, 7, 9);

  var firstName:String = "George"; 

  var niceWeather:Boolean = true; 


文本XML:
  var employee:XML = <employee> 
 <firstName>Harold</firstName> 
 <lastName>Webster</lastName> 
 </employee>;


AS开发过程

1.设计2.编码3.运行4.发布、测试    

工作可以按模块流水线式进行以提高效率


实例类

  package 
  { 
  public class Greeter 
 { 
/** 
 * Defines the names that should receive a proper greeting. 
 */ 
public static var validNames:Array = ["Sammy", "Frank", "Dean"]; 
   
/** 
 * Builds a greeting string using the given name. 
 */ 
  public function sayHello(userName:String = ""):String 
 { 
 var greeting:String; 
if (userName == "")  
{ 
greeting = "Hello. Please type your user name, and then p
the Enter key."; 
}  
else if (validName(userName))  
{ 
greeting = "Hello, " + userName + "."; 
}  
else  
{ 
greeting = "Sorry " + userName + ", you are not on the li
} 
 return greeting; 
 } 
  
/** 
 * Checks whether a name is in the validNames list. 
 */ 
public static function validName(inputName:String = ""):Boolean  
{ 
if (validNames.indexOf(inputName) > -1)  
{ 
return true; 
}  
else  
{ 
return false; 
} 
} 
 } 
  package

is 运算符可以判断类型 或是否是某个类的实例

as 作用同is,但是返回的是表达式的值代替true,返回null代替false


循环:

  for each (var num in myObj) 
  { 
 trace(num); 
  } 

循环XML里的对象
  var myXML:XML = <users> 
 <fname>Jane</fname> 
 <fname>Susan</fname> 
 <fname>John</fname> 
  </users>; 
   
  for each (var item in myXML.fname) 
  { 
 trace(item); 
  } 
  /* output 
  Jane 
  Susan 
  John 
  */


Timer类的用法:

 

 package  
  { 
 import flash.display.Sprite; 
 import flash.events.TimerEvent; 
 import flash.utils.Timer; 
   
  public class ShortTimer extends Sprite 
 { 
  public function ShortTimer()  
 { 
  // creates a new five-second Timer 
  var minuteTimer:Timer = new Timer(1000, 5); 
  
  // designates listeners for the interval and completion events 
 minuteTimer.addEventListener(TimerEvent.TIMER, onTick); 
 minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); 
  
  // starts the timer ticking 
 minuteTimer.start(); 
 } 
   
  public function onTick(event:TimerEvent):void  
 { 
  // displays the tick count so far 
  // The target of this event is the Timer instance itself. 
  trace("tick " + event.target.currentCount); 
 } 
   
  public function onTimerComplete(event:TimerEvent):void 
 { 
 trace("Time's Up!"); 
 } 
 } 
  }
  分割字符串:

var params:Array = queryStr.split("&", 2); //第二个参数代表返回数组的最大容量

搜索子串

  var str:String = "The more the merrier."; 
  // (This search is case-sensitive.) 
  trace(str.search("the")); // output: 9 

大小写转换

  var str:String = "Dr. Bob Roberts, #9." 
  trace(str.toLowerCase()); // dr. bob roberts, #9. 
  trace(str.toUpperCase()); // DR. BOB ROBERTS, #9.

数组

var v:Vector.<String>; 
v = new Vector.<String>();

插入元素

myVector[myVector.length] = valueToAdd;

push()末尾

unshift()在开头插入一个或多个元素

splice()制定位置插入

  var planets:Array = new Array(); 
  planets.push("Mars"); // array contents: Mars 
  planets.unshift("Mercury"); // array contents: Mercury,Mars 
  planets.splice(1, 0, "Venus", "Earth"); 
  trace(planets); // array contents: Mercury,Venus,Earth,Mars


数组排序:

reverse()逆序

sort() :默认升序,参数如下

• Array.CASEINSENSITIVE  不区分大小写
• Array.DESCENDING 与默认相反
• Array.UNIQUESORT 如发现两个元素相等则终止
• Array.NUMERIC 如1,2,3

也可自定义比较函数:

  var names:Array = new Array("John Q. Smith", "Jane Doe", "Mike Jones"); 
  function orderLastName(a, b):int 
  { 
  var lastName:RegExp = /\b\S+$/; 
  var name1 = a.match(lastName); 
  var name2 = b.match(lastName); 
  if (name1 < name2) 
 { 
 return -1; //表示a优先
 } 
  else if (name1 > name2) 
 { 
 return 1; //表示b优先于a
 } 
 else 
 { 
 return 0; //表示优先级相同
 } 
  } 
  trace(names); // output: John Q. Smith,Jane Doe,Mike Jones 
  names.sort(orderLastName); 

sortOn()( 仅适用于Array() ) 按关键字排序

  var poets:Array = new Array(); 
  poets.push({name:"Angelou", born:"1928"}); 
  poets.push({name:"Blake", born:"1757"}); 
  poets.push({name:"cummings", born:"1894"}); 
  poets.push({name:"Dante", born:"1265"}); 
  poets.push({name:"Wang", born:"701"});
  poets.sortOn("born", Array.NUMERIC); 
  for (var i:int = 0; i < poets.length; ++i) 
  { 
 trace(poets[i].name, poets[i].born); 
  } 
  /* output: 
  Wang 701 
  Dante 1265 
  Blake 1757 
  cummings 1894 
  Angelou 1928 
  */

查询数组:

concat()连接数组

join() 把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 

slice()返回子数组


关联数组:

  var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"}; 
  trace(monitorInfo["type"], monitorInfo["resolution"]);  
  // output: Flat Panel 1600 x 1200


或者(Object)

  var monitorInfo:Object = new Object();  
  monitorInfo["aspect ratio"] = "16:10"; // bad form, do not use spaces 
  monitorInfo.colors = "16.7 million"; 
  trace(monitorInfo["aspect ratio"], monitorInfo.colors); 
  // output: 16:10 16.7 million

或者(Array)

  var monitorInfo:Array = new Array(); 
  monitorInfo["type"] = "Flat Panel"; 
  monitorInfo["resolution"] = "1600 x 1200"; 
  trace(monitorInfo["type"], monitorInfo["resolution"]);  
  // output: Flat Panel 1600 x 1200

具有对象键的关联数组(词典)Dictionary

  import flash.display.Sprite; 
  import flash.utils.Dictionary; 
   
  var groupMap:Dictionary = new Dictionary(); 
   
  // objects to use as keys 
  var spr1:Sprite = new Sprite(); 
  var spr2:Sprite = new Sprite(); 
  var spr3:Sprite = new Sprite(); 
   
  // objects to use as values 
  var groupA:Object = new Object(); 
  var groupB:Object = new Object(); 
   
  // Create new key-value pairs in dictionary. 
  groupMap[spr1] = groupA; 
  groupMap[spr2] = groupB; 
  groupMap[spr3] = groupB; 
   
  if (groupMap[spr1] == groupA) 
  { 
  trace("spr1 is in groupA");  
  } 
  if (groupMap[spr2] == groupB) 
  { 
  trace("spr2 is in groupB");  
  } 
  if (groupMap[spr3] == groupB) 
  { 
  trace("spr3 is in groupB");  
  }

具有索引功能的关联数组(关联的对象是索引数组)

  var masterTaskList:Object = new Object(); 
  masterTaskList["Monday"] = ["wash dishes", "take out trash"]; 
  masterTaskList["Tuesday"] = ["wash dishes", "pay bills"]; 
  masterTaskList["Wednesday"] = ["wash dishes", "dentist", "wash dog"]; 
  masterTaskList["Thursday"] = ["wash dishes"]; 
  masterTaskList["Friday"] = ["wash dishes", "clean house"]; 
  masterTaskList["Saturday"] = ["wash dishes", "wash car", "pay rent"]; 
  masterTaskList["Sunday"] = ["mow lawn", "fix chair"];
//遍历:
  for (var day:String in masterTaskList) 
  { 
  trace(day + ": " + masterTaskList[day]) 
  } 
  /* output: 
  Sunday: mow lawn,fix chair 
  Wednesday: wash dishes,dentist,wash dog 
  Friday: wash dishes,clean house 
  Thursday: wash dishes 
  Monday: wash dishes,take out trash 
  Saturday: wash dishes,wash car,pay rent 
  Tuesday: wash dishes,pay bills 
  */

克隆数组:(深副本)

加载外部XML:

  var myXML:XML = new XML(); 
  var XML_URL:String = "http://www.example.com/Sample3.xml"; 
  var myXMLURL:URLRequest = new URLRequest(XML_URL); 
  var myLoader:URLLoader = new URLLoader(myXMLURL); 
  myLoader.addEventListener("complete", xmlLoaded); 
   
  function xmlLoaded(event:Event):void 
  { 
  myXML = XML(myLoader.data); 
 trace("Data loaded."); 
  }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值