AS工程中的Loading应用

本文介绍了一个使用ActionScript实现的加载器示例,通过Preloader类完成加载过程,并展示了如何使用元标签Frame进行文档类替换。此外,还提供了一个具体的AsProjectLoadingExample类,用于演示加载效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天又来介绍Loading...(-_-!!!...好像整天都介绍Loading..希望没误导各位...)

首先..由于AS工程没有帧..所以不能用常用的方法来做Loading..

这里介绍的方法使用元标签Frame(应该是元标签吧?还是叫元数据标签)

网上对Frame的介绍是...使用指定的类替换文档类...

并把其它的东西都丢到了该类的第二帧...

概念就不多说了...英文好的可以看看这个文章...http://www.bit-101.com/blog/?p=946

先看看效果..(PS...Load完以后有CD的**喔...~~xixi);

显示/隐藏FLASH



放代码
Preloader类
package
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.utils.getDefinitionByName;
	/**
	 * 加载类,由于原内容会放到此类的第二帧~所以需要使用MovieClip;
	 * @author L4cd.Net
	 */
	public class Preloader extends MovieClip
	{
		[Embed(source="l4cd_48_48.jpg")]
		private var LogoClass:Class;
		private var text:TextField;
		public function Preloader()
		{
			//不多说了
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.showDefaultContextMenu = false;
			//显示一张图片..非必要
			with(addChild(new LogoClass()))
			{
				x=(500-48)/2;
				y=(380-48)/2;
			}
			//加一个textField显示进度
			text = addChild(new TextField()) as TextField;
			with(text)
			{
				defaultTextFormat = new TextFormat("宋体",12,0,null,null,null,null,null,"center");
				mouseEnabled = false;
				height = 16;
				x = (500-100)/2;
				y = 35+(380-15)/2;
			}
			//重要~侦听~
			loaderInfo.addEventListener(ProgressEvent.PROGRESS,progress);
			loaderInfo.addEventListener(Event.COMPLETE,complete);
		}
		//显示进度
		private function progress(e:ProgressEvent):void
		{
			text.text = (e.bytesLoaded/e.bytesTotal*100).toFixed(2)+"% Loaded";
		}
		private function complete(e:Event):void
		{
			//重要..加载完后...我们跳转到第二帧
			gotoAndStop(2);
			//获取文档类...然后显示,对于此步操作..有多种方法..有人习惯直接把原文档类addChild到此类当中..
			var mainClass:Class = Class(getDefinitionByName("AsProjectLoadingExample"));
			stage.addChild(new mainClass() as DisplayObject);
			//删除此类
			destroy();
		}
		private function destroy():void
		{
			loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progress);
			loaderInfo.removeEventListener(Event.COMPLETE,complete);
			parent.removeChild(this);
		}
	}
}

AsProjectLoadingExample类
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.geom.Matrix;

	[SWF(width="500",height="380",backgroundColor="#FFFFFF",frameRate="24")]
	//注意此行,Preloader为类名
	[Frame(factoryClass="Preloader")]
	public class AsProjectLoadingExample extends Sprite
	{
		[Embed(source="CD**.png")]
		private var ImageClass:Class;
		//嵌入一个2M的文件以显示加载效果
		[Embed(source="something.wma",mimeType="application/octet-stream")]
		private var SomeClass:Class;
		public function AsProjectLoadingExample()
		{
			//马赛格ing...
			var bmp:Bitmap = new ImageClass();
			var bit:BitmapData = new BitmapData(bmp.width/10,bmp.height/10,true,0);
			bit.draw(bmp,new Matrix(.1,0,0,.1));
			with (addChild(new Bitmap(bit)))
			{
				scaleX = scaleY = 10;
			}
		}
	}
}


我们也可以先用Flash做好loading效果..然后再嵌入到AS工程里..(下面的loading来自Pretty Loaded)

显示/隐藏FLASH

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值