`

ActionScript3 Cookbook中摘取(三)

    博客分类:
  • Flex
阅读更多

1、哈希表(ActionScript中叫关联数组)

在ActionScript中是Object的一个实例,

一、创建:

var memebers:Object = {scribe: "Franklin",
chairperson: "Gina",
treasurer: "Sindhu"};

var members:Object = new Object( );
members.scribe = "Franklin";
members.chairperson = "Gina";
members.treasurer = "Sindhu";

二、访问:

trace(members.scribe);

trace(members["scribe"]);

三、读取,使用for...in

// 显示:
// treasurer: Sindhu
// chairperson: Gina
// scribe: Franklin

for (var sRole:String in members) {
    trace(sRole + ": " + members[sRole]);
}

========================================================================

 

2、几种常用可视化类应继承的父类说明

如果创建一个图形类,这就要继承Shape类。

如果要创建自定义按钮,可能要继承SimpleButton类。

如果要创建一个容纳其他对象的容器,Sprite 就是个很好的继承类,它不需要使用时间线。

如果需要时间线,需要继承MovieClip

========================================================================

 

3、创建鼠标移动至按钮上时的浮动按钮

思路:

一、创建类继承自SimpleButton,定义按钮的四种状态upState、overState、downState、hitTestState

四种状态意义:

upState:鼠标移开时

overState:鼠标移到按钮上时

downState:鼠标按下时

hitTestState:鼠标移动按钮时的可反应区域

二、创建TextField,用来显示按钮上的文字。

三、在创建TextField这个方法中,如果为按下状态时,此TextField的X和Y座标分别 +1。

代码:

public class RectangleButton extends SimpleButton {
	// 显示在按钮上的文本
	private var _text:String;
	// 保存矩形的宽度和高度
	private var _width:Number;
	private var _height:Number;
	public function RectangleButton( text:String, width:Number, height:Number ) {
		// Save the values to use them to create the button states
		_text = text;
		_width = width;
		_height = height;
		// 创建按钮状态
		upState = createUpState( );
		overState = createOverState( );
		downState = createDownState( );
		hitTestState = upState;
	}
		// 创建状态对象
	private function createUpState( ):Sprite {
		var sprite:Sprite = new Sprite( );
		var background:Shape = createdColoredRectangle( 0x33FF66 );
		var textField:TextField = createTextField( false );
		sprite.addChild( background );
		sprite.addChild( textField );
		return sprite;
	}
	private function createOverState( ):Sprite {
		var sprite:Sprite = new Sprite( );
		var background:Shape = createdColoredRectangle( 0x70FF94 );
		var textField:TextField = createTextField( false );
		sprite.addChild( background );
		sprite.addChild( textField );
		return sprite;
	}
	private function createDownState( ):Sprite {
		var sprite:Sprite = new Sprite( );
		var background:Shape = createdColoredRectangle( 0xCCCCCC );
		var textField:TextField = createTextField( true );
		sprite.addChild( background );
		sprite.addChild( textField );
		return sprite;
	}
	private function createdColoredRectangle( color:uint ):Shape {
		var rect:Shape = new Shape( );
		rect.graphics.lineStyle( 1, 0x000000 );
		rect.graphics.beginFill( color );
		rect.graphics.drawRoundRect( 0, 0, _width, _height, 15 );
		rect.graphics.endFill( );
		rect.filters = [ new DropShadowFilter( 2 ) ];
		return rect;
	}
		// 创建按钮上的文字
	private function createTextField( downState:Boolean ):TextField {
		var textField:TextField = new TextField( );
		textField.text = _text;
		textField.width = _width;
		var format:TextFormat = new TextFormat( );
		format.align = TextFormatAlign.CENTER;
		textField.setTextFormat( format );
		//垂直居中
		textField.y = ( _height - textField.textHeight ) / 2;
		textField.y -= 2; // Subtract 2 pixels to adjust for offset
		if ( downState ) {
			textField.x += 1;
			textField.y += 1;
		}
	}
}


//调用按钮类
package {
	import flash.display.*;
	public class SimpleButtonDemo extends Sprite {
		public function SimpleButtonDemo( ) {
			// 创建三个不同文字不同大小和位置的矩形按钮
			var button1:RectangleButton = new RectangleButton( "Button 1", 60, 100 );
			button1.x = 20;
			button1.y = 20;
			var button2:RectangleButton = new RectangleButton( "Button 2", 80, 30 );
			button2.x = 90;
			button2.y = 20;
			var button3:RectangleButton = new RectangleButton( "Button 3", 100, 40 );
			button3.x = 100;
			button3.y = 60;
			addChild( button1 );
			addChild( button2 );
			addChild( button3 );
		}
	}
}

========================================================================

 

4、Loader实例的contentLoaderInfo的事件说明:

open
当资源开始下载时触发
progress
资源在下载中时触发
complete
当资源下载完成时触发
init
当载入外部的.swf初始化时触发
httpStatus
当载入外部资源的HTTP请求产生状态代码错误时触发
ioError
当一个错误导致下载被终止时触发,比如找不到相应资源
securityError
当试图读取安全沙漏以外的数据时触发
unload
当unload( ) 方法被调用或移除载入的内容时或再次调用load( ) 方法时都会触发该事件

========================================================================

 

5、利loader的事件显示加载对象时的百分比

private function handleOpen( event:Event ):void {
	_loaderStatus = new TextField( );
	addChild( loaderStatus );
	_loaderStatus.text = "Loading: 0%";
}
private function handleProgress( event:ProgressEvent ):void {
	var percent:Number = event.bytesLoaded / event.bytesTotal * 100;
	_loaderStatus.text = "Loading: " + percent + "%";
}
private function handleComplete( event:Event ):void {
	removeChild(_loaderStatus);
	_loaderStatus = null;
}

========================================================================

 

 6、装载SWF,并调用此SWF中的方法

使用Loader,监听Init事件,并通过loader.content访问装载SWF中的方法

如:

private function handleInit( event:Event ):void {
 var movie:* = _loader.content;

//可以调用装载swf的方法了
 trace( movie.getColor( ) );
 movie.setColor( 0xFF0000 );
}

========================================================================

 

分享到:
评论

相关推荐

    ActionScript 3.0 Cookbook 中文完整版

    ActionScript 3.0 Cookbook 中文完整版.pdf

    ActionScript 3.0 CookBook 中文翻译

    压缩包中的"FLASH-FLEX3[1].0开发中文版+完整版+.pdf"文件包含了全书的完整内容,读者可以通过阅读其中的章节,了解和学习如何利用ActionScript 3.0来实现各种功能,例如: 1. 类和对象:学习如何定义类、创建对象...

    ActionScript3.0cookbook中文版

    标签“ac3”指的是ActionScript3.0,“actionscript3 cookbook”强调了这本书的实践性,而“actionscript”则是对整个ActionScript语言的泛指。 在压缩包内包含的文件《51CTO下载-ActionScript.3.0.Cookbook.中文...

    ActionScript3.0 Cookbook 中文完整版 pdf

    《ActionScript 3.0 Cookbook 中文完整版》通过具体实例,为读者提供了解决问题的“食谱”,涵盖了许多实际开发中常见的问题和挑战。每个章节都针对特定问题,提供可直接应用的代码片段,有助于快速理解和解决遇到的...

    ActionScript 3.0 cookbook中文简体完整版电子书

    《ActionScript 3.0 Cookbook》是一本专为ActionScript 3.0开发者设计的实用指南,它提供了大量具体的代码示例,帮助读者解决在开发过程中遇到的各种问题。这本书中文简体的完整版,旨在让中国地区的开发者能够更...

    ActionScript+3.0+Cookbook+中文完整版

    ActionScript+3.0+Cookbook+中文完整版source文件夹目录结构如下: org中主要是org.kingda.book.*包,所有的类文件都在其中。 com中应存放com.mimswright.*,是Mims Wright(www.mimswright.com)编写的生成抽象类的...

    ActionScript 3.0 Cookbook.rar 中文版

    在《ActionScript 3.0 Cookbook》中,你可以找到关于以下主题的知识点: 1. **基础语法**:包括变量声明、数据类型(如Number、String、Boolean)、操作符、流程控制语句(如if、for、while)、函数定义和调用等。 ...

    ActionScript 3 cookbook 锦囊妙计

    ### ActionScript 3 Cookbook 锦囊妙计 #### 一、概述 《ActionScript 3 Cookbook 锦囊妙计》是一本专为ActionScript开发者设计的实用指南。它旨在通过一系列精心挑选的示例和解决方案来帮助读者解决实际开发过程...

    ActionScript3_Cookbook_cn pdf

    Flex ActionScript3_Cookbook_cn

    ActionScript 3 Cookbook.PDF

    ActionScript 3 Cookbook.PDF

    ActionScript 3 Cookbook code

    《ActionScript 3 Cookbook》是一本专注于ActionScript 3编程技术的实用指南,源码包含在提供的多个文本文件中,如ch01.txt至ch20.txt。这些文件很可能是书中的各个章节代码示例,方便读者直接查看和运行。...

    ActionScript 3.0 Cookbook 中文完整版.pdf+源码

    在“ActionScript 3.0 Cookbook 中文完整版.pdf”中,你可以找到各种编程技巧和解决方案,每个章节都围绕一个特定的问题或任务展开,如创建动态图形、处理事件、使用XML或JSON进行数据交换、实现高级动画效果等。...

    ActionScript 3.0 Cookbook 中文版.pdf

    ActionScript 3.0 Cookbook 中文版.pdf 博文链接:https://lvxuehu.iteye.com/blog/183335

    ActionScript 3 Cookbook 中文版

    ActionScript 3 Cookbook 中文版,开发ActionScript必备资料

Global site tag (gtag.js) - Google Analytics