`
ch_kexin
  • 浏览: 899461 次
  • 性别: 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  
文章棒棒哒

相关推荐

    FLASH AS3.0部分常用代码

    本资源摘要信息将详细介绍 FLASH AS3.0 部分常用代码,包括影片only的残影效果、影片随机复制、鼠标拖动影片、影片属性、鼠标事件、键盘事件、全屏代码、退出代码、时间轴上停止代码、按钮代码、播放和停止代码、...

    AS3实用函数、AS3常用算法大全

    ### AS3实用函数与常用算法知识点详解 #### 一、鼠标坐标:`mouseX` 和 `mouseY` 在Adobe Flash/ActionScript 3 (AS3) 中,`mouseX` 和 `mouseY` 属性用于获取鼠标相对于舞台的当前位置。这两个属性非常有用,特别...

    FLASH_as3.0常用代码.pdf

    FLASH as3.0常用代码 FLASH作为一个强大的多媒体开发平台,as3.0是其中的一个版本,本文档总结了 FLASH as3.0中的一些常用代码,涵盖了按钮事件、超链接、数学运算、随机数、画线、画三角形、影片剪辑属性设置、...

    as3提示框代码

    在AS3中,提示框(Alert)是一种常用的用户界面元素,用于向用户显示信息、询问问题或获取用户输入。在AS3中,我们可以自定义提示框来满足特定的需求,而“CommonAlert.as”很可能是一个已经封装好的通用提示框类。 ...

    AS3.0常用代码

    AS3.0 常用代码详解 AS3.0 是 ActionScript 3.0 的简称,是 Flash 的脚本语言。下面是 AS3.0 中的一些常用代码和技术点: 1. 按钮事件(新版) 在 AS3.0 中,按钮事件可以使用 `addEventListener` 方法来实现。...

    as3.0常用代码

    总结而言,以上代码覆盖了AS3中常用的多种功能实现,包括全屏模式切换、时间轴控制、跳转、逐帧动画控制、影片剪辑操作、拖放功能以及划线功能。掌握这些基本技巧有助于开发者在Flash平台创建更加复杂和互动性强的...

    as3.0_常用代码

    本文将详细解析AS3.0中的一些常用代码和编程技巧。 1. **按钮事件**: 在AS3.0中,处理按钮事件的方法与AS2有所不同。在AS3.0中,我们不再使用`on(release)`语法,而是通过监听`MouseEvent.CLICK`事件来响应按钮...

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

    根据给定的文件信息,以下是对AS3动画效果公式代码及常用处理公式代码的详细解析与整理: ### AS3动画效果公式代码 #### 平滑移动(Easing Movement) 平滑移动是通过调整物体的位置来实现平滑过渡的效果。公式...

    FLASH(as2.0)实用代码大全

    【FLASH(as2.0)实用代码大全】是一个关于ActionScript 2.0的教程,主要针对初学者,介绍了一些基本的代码用法,用于增强Flash动画的功能和交互性。ActionScript是Adobe Flash Professional中用于创建动态内容的关键...

    Flex代码格式化 Flash格式化代码 mxml格式化代码 as格式化代码

    常用的Flex、Flash、MXML和AS代码格式化工具有Adobe的Flash Builder自带的代码格式化功能,以及开源的编辑器插件,如FDT、FlashDevelop和Sublime Text的插件。这些工具通常提供了自定义配置选项,允许开发者根据...

    Flash as2.0代码大全与Flash制作技巧

    ### Flash AS2.0代码大全与Flash制作技巧 ...这些知识点涵盖了Flash AS2.0开发中常用的技术点,对于初学者来说是非常宝贵的资源。希望这些信息能帮助大家更好地理解和掌握Flash AS2.0的编程技术。

    as3 界面编辑

    2. **实例命名**:为舞台上的每个对象分配唯一的实例名称,这使得在AS3代码中引用它们变得简单。 3. **动作脚本编写**:在时间轴或独立的AS3文件中编写代码,以控制组件的行为和响应用户交互。 4. **事件监听**:...

    as3常用属性语句整理

    ```as3 function eventResponse(eventObject:EventType):void { // 执行的脚本 } eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse); ``` 其中: - `eventResponse`:定义的事件响应函数名。 -...

    protobuf3-layaair_AS3-master

    4. 在AS3代码中实例化并操作这些生成的类,进行数据的序列化和反序列化。 总的来说,protobuf3-layaair_AS3-master是一个非常有价值的资源,它使得LayaAir AS3开发者可以方便地利用protobuf3进行数据交换,提高开发...

    AS3常用英语单词大全

    【AS3常用英语单词大全】是针对ActionScript 3.0编程语言的学习资源,包含了AS3中常见的英文词汇及其解释。ActionScript 3.0是一种广泛应用于开发Flash平台应用程序、游戏和富互联网应用的脚本语言。以下是一些重要...

    flash as3 全站常用特效 伪3d 360度 旋转

    在本项目中,AS3被用来编写控制360度旋转逻辑的代码。 2. **伪3D效果**:由于Flash本身不支持真正的3D渲染,开发者通常利用二维图形和复杂的数学变换来模拟3D效果,这就是所谓的“伪3D”。通过平移、缩放和旋转等...

    AS3类库资源大集合

    AS3 类库资源大集合包含了众多实用的 ActionScript 3(AS3)库,这些库主要服务于 Flash 和 Flex 开发者,提供了丰富的功能,如网络API接口、UI组件、动画效果、数据处理以及游戏开发等。以下是部分核心知识点的详细...

    java 加密解密压缩包zip代码-as3

    本篇文章将深入探讨如何使用Java实现对ZIP压缩包的加密和解密功能,并结合AS3(ActionScript 3)进行相关应用。 首先,我们需要了解ZIP文件格式。ZIP是一种广泛使用的文件存档格式,它允许我们将多个文件或目录打包...

    Flash常用循环代码(AS3.0+2.0).rar_as3.0常用代码_flash循环语句

    本资料包"Flash常用循环代码(AS3.0+2.0)"可能包含了AS3.0中的主要循环结构及其在Flash中的应用实例。下面我们将详细探讨这些循环语句。 1. **for循环**:这是最基础的循环类型,由初始化、条件检查和迭代三部分...

    Flash常用代码集锦

    以下是一些关于Flash常用代码的知识点: 1. 弹出小窗口:通过在Flash中设置按钮的`on (release)`事件,可以调用JavaScript函数`MM_openBrWindow()`来实现新窗口的打开。在HTML中插入相应的JavaScript代码以支持此...

Global site tag (gtag.js) - Google Analytics