`
ch_kexin
  • 浏览: 875637 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

常用的AS3代码

阅读更多
      常用的一些代码段,摘自AS3游戏编程大学(ActionScript 3.0 Game Programming University),如果转载,请注明出处--Arthur。
1、检测碰撞
addEventListener(Event.ENTER_FRAME, checkCollision);
function checkCollision(event:Event) {
//hitTestPoint检测对象与某点是否发生碰撞
if (crescent.hitTestPoint(mouseX, mouseY, true)) {
  messageText1.text = "hitTestPoint: YES";
} else {
  messageText1.text = "hitTestPoint: NO";
}
// move star with mouse
star.x = mouseX;
star.y = mouseY;
//hitTestObject检测两物体是否碰撞
if (star.hitTestObject(crescent)) {
  messageText2.text = "hitTestObject: YES";
} else {
  messageText2.text = "hitTestObject: NO";
}
}

2、使用文本框
//创建基本格式
var myFormat:TextFormat = new TextFormat();
myFormat.font = "Arial";
myFormat.size = 24;
myFormat.bold = true;
//创建样式表
var myStyleSheet:StyleSheet = new StyleSheet();
myStyleSheet.setStyle("A",{textDecoration: "underline", color: "#0000FF"});
var myLink:TextField = new TextField();
//使用格式化文本
myLink.defaultTextFormat = myFormat;
//文本使用样式表
myLink.styleSheet = myStyleSheet;
myLink.selectable = false;
myLink.htmlText = "Click <A HREF='event:testing'>here</A>";
myLink.x = 80;
myLink.y = 190;
myLink.width = 400;
myLink.height = 30;
addChild(myLink);
//添加文本单击事件
addEventListener(TextEvent.LINK, textLinkClick);
function textLinkClick(event:TextEvent) {
trace(event.text);
}

3、使用自定义鼠标
Mouse.hide();
addEventListener(Event.ENTER_FRAME, moveCursor);
arrow.mouseEnabled = false;
function moveCursor(event:Event) {
arrow.x = mouseX;
arrow.y = mouseY;
}

4、简单计数器
var timeDisplay:TextField = new TextField();
addChild(timeDisplay);
var startTime:int = getTimer();
addEventListener(Event.ENTER_FRAME, showClock);
function showClock(event:Event) {
var timePassed:int = getTimer()-startTime;
var seconds:int = Math.floor(timePassed/1000);
var minutes:int = Math.floor(seconds/60);
seconds -= minutes*60;
var timeString:String = minutes+":"+String(seconds+100).substr(1,2);
timeDisplay.text = timeString;
}

5、拖动影片
mascot.addEventListener(MouseEvent.MOUSE_DOWN, startMascotDrag);
stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag);
mascot.addEventListener(Event.ENTER_FRAME, dragMascot);
var clickOffset:Point = null;
function startMascotDrag(event:MouseEvent) {
clickOffset = new Point(event.localX, event.localY);
}
function stopMascotDrag(event:MouseEvent) {
clickOffset = null;
}
function dragMascot(event:Event) {
if (clickOffset != null) { // must be dragging
  mascot.x = mouseX - clickOffset.x;
  mascot.y = mouseY - clickOffset.y;
}
}

6、使用动态绘图函数
// 画(100,200)到(150,250)的直线
this.graphics.lineStyle(2,0x000000);
this.graphics.moveTo(100,200);
this.graphics.lineTo(150,250);
// 画曲线
this.graphics.curveTo(200,300,250,250);
// 画矩形、圆角矩形
this.graphics.drawRect(50,50,300,250);
this.graphics.drawRoundRect(40,40,320,270,25,25);
// 画圆、椭圆
this.graphics.drawCircle(150,100,20);
this.graphics.drawEllipse(180,150,40,70);
// 填充圆
this.graphics.beginFill(0x333333);
this.graphics.drawCircle(250,100,20);
this.graphics.endFill();

7、捕捉键盘输入
// 显示按下的键
var keyboardText:TextField = new TextField();
keyboardText.selectable = false;
addChild(keyboardText);
//用于显示spacbar是否按下
var spacebarText:TextField = new TextField();
spacebarText.selectable = false;
spacebarText.y = 30;
addChild(spacebarText);
spacebarText.text  = "Spacebar is UP.";
var spacebarPressed:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
function keyDownFunction(event:KeyboardEvent) {
keyboardText.text = "Key Pressed: "+String.fromCharCode(event.charCode);
if (event.charCode == 32) {
  spacebarPressed = true;
  spacebarText.text = "Spacebar is DOWN.";
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
function keyUpFunction(event:KeyboardEvent) {
if (event.charCode == 32) {
  spacebarPressed = false;
  spacebarText.text  = "Spacebar is UP.";
}
}


8、加载HTML页面变量(difficultyLevel变量由HTML'flashvars'设置)
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
var diffLevel:String = paramObj["difficultyLevel"];
var messageString = "difficultyLevel: "+paramObj["difficultyLevel"];
messageString += "\n";
messageString += "puzzleFile: "+paramObj["puzzleFile"];
messageText.text = messageString;

9、加载外部XML格式文本
var xmlURL:URLRequest = new URLRequest("LoadingData.xml");
var xmlLoader:URLLoader = new URLLoader(xmlURL);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(event:Event) {
var dataXML  = XML(event.target.data);
trace(dataXML.question.text);
trace(dataXML.question.answers.answer[0]);
trace(dataXML.question.answers.answer[0].@type);
}

10、建立预加载动画
stop();
addEventListener(Event.ENTER_FRAME, loadProgress);
function loadProgress(event:Event) {
// 获得总字节数和已经加载的字节数
var movieBytesLoaded:int = this.root.loaderInfo.bytesLoaded;
var movieBytesTotal:int = this.root.loaderInfo.bytesTotal;
// 转化为MB
var movieKLoaded:int = movieBytesLoaded/1024;
var movieKTotal:int = movieBytesTotal/1024;
progressText.text = "Loading: "+movieKLoaded+"K/"+movieKTotal+"K";
if (movieBytesLoaded >= movieBytesTotal) {
  removeEventListener(Event.ENTER_FRAME, loadProgress);
  gotoAndStop(2);
}
}

11、动态建立按钮元件
函数:SimpleButton(upState:DisplayObject = null, overState:DisplayObject = null,

downState:DisplayObject = null, hitTestState:DisplayObject = null)
var mySimpleButton:SimpleButton = new SimpleButton(new ButtonUp(), new ButtonOver(), new

ButtonDown(), new ButtonHit());
mySimpleButton.x = 450;
mySimpleButton.y = 250;
addChild(mySimpleButton);
mySimpleButton.addEventListener(MouseEvent.CLICK, clickSimpleButton);
function clickSimpleButton(event:MouseEvent) {
trace("You clicked the simple button!");
}

12、使用声音
button1.addEventListener(MouseEvent.CLICK, playLibrarySound);
button2.addEventListener(MouseEvent.CLICK, playExternalSound);
// 加载外部声音
var sound2:Sound = new Sound();
var req:URLRequest = new URLRequest("PlayingSounds.mp3");
sound2.load(req);
function playLibrarySound(event:Event) {
var sound1:Sound1 = new Sound1();
var channel:SoundChannel = sound1.play();
}
function playExternalSound(event:Event) {
sound2.play();
}

13、生成随机数
var random1:Number = Math.random();
trace("Random Number Between 0-0.9999: "+random1);
var random2:Number = Math.random()*100;
trace("Random Number Between 0-99.9999: "+random2);
var random3:Number = Math.floor(Math.random()*100);
trace("Random Integer Between 0-99: "+random3);
var random4:Number = Math.floor(Math.random()*100)+1;
trace("Random Integer Between 1-100: "+random4);

14、存储数据
var myLocalData:SharedObject = SharedObject.getLocal("mygamedata");
trace("Found Data: "+myLocalData.data.gameinfo);
myLocalData.data.gameinfo = "Store this.";

15、随机排列数组元素
// 创建有序的数组
var startDeck:Array = new Array();
for(var cardNum:int=0;cardNum<52;cardNum++) {
startDeck.push(cardNum);
}
trace("Unshuffled:",startDeck);
// 打乱数据
var shuffledDeck:Array = new Array();
while (startDeck.length > 0) {
var r:int = Math.floor(Math.random()*startDeck.length);
shuffledDeck.push(startDeck[r]);
startDeck.splice(r,1);
}
trace("Shuffled:", shuffledDeck);

16、获取环境信息
function showInfo(event:Event) {
var output:String = "";
output += "stageWidth: "+stage.stageWidth+"\n";
output += "stageHeight: "+stage.stageHeight+"\n";
output += "playerType: "+Capabilities.playerType+"\n";
output += "language: "+Capabilities.language+"\n";
output += "os: "+Capabilities.os+"\n";
output += "screenResolutionX: "+Capabilities.screenResolutionX+"\n";
output += "screenResolutionY: "+Capabilities.screenResolutionY+"\n";
output += "version: "+Capabilities.version+"\n";
output += "serverString: "+Capabilities.serverString+"\n";
messageText.text = output;
}
stage.scaleMode = StageScaleMode.EXACT_FIT;
addEventListener(Event.ENTER_FRAME,showInfo);

17、接受文本输入
myInput.addEventListener(KeyboardEvent.KEY_UP, checkForReturn);
function checkForReturn(event:KeyboardEvent) {
if (event.charCode == 13) {
  acceptInput();
}
}
function acceptInput() {
var theInputText:String = myInput.text;
trace(theInputText);
removeChild(myInput);
}
分享到:
评论
1 楼 whlei01 2015-06-01  
文章棒棒哒

相关推荐

    AS3.0常用代码

    AS3.0常用代码

    AS3动画效果公式代码以及常用处理公式代码整理

    AS3动画效果公式代码以及常用处理公式代码整理

    FLASH AS3.0部分常用代码

    //关于影片only的残影效果// //关于影片随机复制// //关于鼠标拖动影片//

    flash AS3代码.doc

    制作flash的一些代码,影片,按钮的一系列常用的代码,适合新手使用

    flash as3.0代码优化

    flash常用优化技术,有兴趣的可以下来看看

    AS3人物行走

    游戏公司最常用的人物行走代码,flash AS3代码

    AS3及Flex的百条常用知识.pdf

    AS3及Flex的百条常用知识,里面收集了上百条AS3及Flex的代码简介,对AS3设计人员帮助很大,找起内容也非常方便!

    Flash AS3动画效果公式

    AS3动画效果公式,常用处理公式代码,基本运动公式,三角公式2011-05-10 11:52转载自 秋色烽火最终编辑 秋色烽火? as3种常见的弹性效果公式以及波形运动等as3动画效果公式代码整理,对于常用的来说作者整理的很全面,...

    as3框架cutload

    是一个轻量级的as3框架,它的主要思想有两个:1.分块加载页面,动态加载代码库和应用,2.各类之间联系松散,这样可以方便独立引用。 cutload拥有一套完整的UI组件,布局方案,和一些常用的工具类,特别对主场景宽高实时...

    SQL精典代码(SQL常用代码)

    Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.數據庫加密: select encrypt('原始密碼') select pwdencrypt('原始密碼') select pwdcompare('原始密碼','加密後密碼') = 1--...

    flash 类文件 greensock-as3.zip

    自动生成一些常用的flash缓动效果的as代码,将生成的代码直接进行复制 粘贴 ,然后在自己的flash文件中加上对应的实例就可以了。

    python-引用代码.docx

    以下是一个简单的Matplotlib示例,用于绘制一个简单的线图: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y) plt.show() python-引用代码全文共3页,当前为第...

    K3wise后台修改计量单位SQL语句

    /*实际应用场景中,有需要对已经使用过的物料进行物料计量单位的...简单应该,只需要输入“新的计量单位组名”,“新的计量单位名”“需要修改的物料长代码”后执行即可以一键修改。若是有一些非常单据需要自己再添加

    ActionScript3.0经典连线题2+AS3.0+Graphics+联线题+课件+课件制作

    连线题是课件中常用的一种应用,本例可做各种推广使用。本示例为纵向物理定律与相关解释文本间的连线题,初高中课本中常见题型。

    python数学实验与建模代码.docx

    例如,我们可以使用NumPy库来求解线性方程组: ```python import numpy as np A = np.array([[1, 2], [3, 4]]) b = np.array([5, 6]) x = np.linalg.solve(A, b) print(x) ``` python数学实验与建模代码全文共3页,...

    Android代码-第三方V2EX

    it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed ...

    用户注册常用javascript代码

    代码如下:&lt;&#37;@ page contentType=”text/html; charset=gb2312″ language=”java”%&gt; &lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”&gt; &lt...

    arcgis开发常用源码

    arcgis开发常用源码 1.点上生成面的代码 if (m_pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon) { IPointCollection m_pPointCollection = new PolygonClass(); object missing = ...

    svm算法手写matlab代码-Machine-Learning-Code:此存储库是一些代码,其中打包了机器学习中的一些常用方法

    该存储库是一些代码,其中打包了机器学习中常用的方法。 我将进行后续更新。 您可以从源代码中获取特定的用法详细信息。 这是有关每个文件夹中主要工作的一些简要信息。 1. Gan: Generate handwritten digital ...

    3desjava源码-as3-crypto:HenriTorgemane优秀的as3密码学库的分支

    二进制文件可以在/deploy/as3crypto.swc找到 复制到您的库文件夹,将其添加到您的类路径,然后就可以了。 特征 协议:TLS 1.0 支持(部分) 证书:X.509 证书解析和验证,内置根 CA。 公钥加密:RSA(加密/解密、...

Global site tag (gtag.js) - Google Analytics