- 浏览: 175955 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xiangyufangai:
很好很强大膜拜中哈哈!!
VB 两个字符串处理函数(类似Left/Mid/Right/Split的结合) -
hellohank:
这个……叫摘要算法,不叫加密算法~
Java实现的加密工具类(支持MD5和SHA) -
NIUCH1029291561:
接口有问题奥
网银在线支付接口和应用 -
yeuego:
能幫你就行了
MySQL索引分析 -
ForgiDaved:
很给力的介绍。记得前段时间给一个系统加功能,设计的表没有 ...
MySQL索引分析
上面的地址是曾经也就是刚刚过去的一个月前学习AS2.0的时候有感而发写的乌七八糟,而这些日子开始着手3.0了咬牙切齿的要自己找回在2.0上所会的,于是乎冒出个这么东东,其实这两个东东表现的效果是一样的,只是编写的脚本不一样了。我很欣慰。。。。总算是找回来了点
好了现在说一下它的内容吧,其实很简单是两部分组成的,只是两个MC,rejigger_mc和loadPic_mc,前者是负责加载XML以及如何显示图片的整个SWF的主干,而后者只是为了加载图片显示进度的一个小零件。
以前2.0时,我把代码分别写在rejigger_mc和loadPic_mc的时间轴上,然后在rejigger_mc里黏贴N多个loadPic_mc,可现在不行啦,他们不让我那么做,我只好把代码写在两个rejigger_mc.as和loadPic_mc.as外部文件里。
注:这些文件的布局如下,文件夹ActionScript里含rejigger_mc.as和loadPic_mc.as
我以混乱的思维浅薄的学识来聊聊我写的东西。。。。首先是loadPic_mc.as文件
代码:
package ActionScript{//包是什么,我的理解它就是文件夹,不就是为了完全限定名称吗
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.*;
import flash.display.MovieClip;
import flash.text.TextField;
import fl.transitions.Tween;
import fl.transitions.easing.Back;
import fl.transitions.TweenEvent;
//变了啊,真的变了,现在用什么东西都得冲人家张口借,尽管是免费的,我曾经偷//偷地在所关联的MC里放了一个文本框,结果还是被发现了,你说我和FLASH打//了多少年的交道,多多少少有点感情吧??,最后我不得不import flash.text.TextField;
public class loadPic_mc extends MovieClip {
//类名原来就是脚本文件名
public var fun:Function;
//定义了一个属性他的再次出现在最后一行
private var per_txt:TextField;
//显示加载进度
private var loadPic:Loader;
private var dispatcher:IEventDispatcher;
//上面的这些变量曾经我是声明在主时间轴的最顶端的
public function loadPic_mc(str:String):void {//构造函数,现在完全多了个这个东东,据我观察,当你声明一个类时,不管你愿不愿意它都会执行这个函数
var request:URLRequest=new URLRequest(str);
loadPic=new Loader();
dispatcher=loadPic.contentLoaderInfo;
dispatcher.addEventListener(Event.COMPLETE,loadComH);
dispatcher.addEventListener(Event.OPEN,loadOpenH);
dispatcher.addEventListener(ProgressEvent.PROGRESS,loadProgH);
//订阅事件呢
loadPic.load(request);
//一个载入多写了几行,要是从3.0转型到2.0那该多快
per_txt=new TextField();
per_txt.x=10;
per_txt.y=55;
per_txt.width=150;
per_txt.textColor=0xB3CCCC;
this.motionLoad_mc.visible=false;
//在loadPic_mc的舞台上所含的一个MC,有时间轴的
this.addChild(loadPic);
//曾经用this指东指西的,现在呢,不能再乱指了,只能指本类,
this.addChild(per_txt);
}
private function loadOpenH(event:Event):void {
this.motionLoad_mc.visible=true;
per_txt.text="正在载入。。。。";
loadPic.alpha=0;
//开始下载时调度
}
private function loadProgH(event:ProgressEvent):void {
per_txt.text="已载入。。。。"+uint(event.bytesLoaded/event.bytesTotal*100)+"%";
//下载过程中调度
}
private function loadComH(event:Event):void {
var aTween:Tween = new Tween( loadPic, "alpha", Back.easeOut,0, 1, 2, true);
aTween.addEventListener(TweenEvent.MOTION_FINISH,disPic);
//其实完全没必要订阅这个事件,只是想联系一下Tween类
this.removeChild(this.motionLoad_mc);
this.removeChild(per_txt);
//显示对象很帅吧以后就再也不要_mc[newmc+”I”]去找对象了
dispatcher.removeEventListener(Event.COMPLETE,loadComH);
dispatcher.removeEventListener(Event.OPEN,loadOpenH);
dispatcher.removeEventListener(ProgressEvent.PROGRESS,loadProgH);
//清除监听,便于处理垃圾
}
private function disPic(event:TweenEvent){
fun();
//调用函数fun
}
}
}
//写完此类了 其实3.0语言一看很有层次感的,8错8错
下面在库里找到loadPic_mc 右键 –链接 类里填入:ActionScript.loadPic_mc
注: loadPic_mc里只含一个元件motionLoad_mc
接下来编写类rejigger_mc.as
代码:
package ActionScript{
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.*;
import flash.display.SimpleButton;
import flash.display.Sprite;
import fl.transitions.Tween;
import fl.transitions.easing.Back;
import ActionScript.loadPic_mc;
public class rejigger_mc extends Sprite {
private var sprite:Sprite;
private var portraitXml:XML;
private var loadXml:URLLoader;
private var dispatcher:IEventDispatcher;
private var i:uint;
private var len:uint;
private var m:uint;
//这些属性都是私有的从此类外部是无法访问的
public function rejigger_mc():void {
var request:URLRequest=new URLRequest("portrait.xml");
loadXml=new URLLoader(request);
//载入外部XML文件
loadXml.addEventListener(Event.COMPLETE,comH);
}
private function comH(event:Event) {
portraitXml=new XML(event.target.data);
sprite=new Sprite();
//这个其实就是装loadPic_mc的容器
sprite.x=10;
sprite.y=10;
this.addChild(sprite);
var maskSprite:Sprite=new Sprite();
//只是为了遮盖 所以不必添加到显示列表中
maskSprite.graphics.beginFill(0xffffff);
maskSprite.graphics.drawRect(10,10,150,80);
maskSprite.graphics.endFill();
sprite.mask=maskSprite;
this.right_btn.addEventListener(MouseEvent.CLICK,moveRight);
this.left_btn.addEventListener(MouseEvent.CLICK,moveLeft);
//又该订阅事件了
i=0;
len=0;
for (var item:String in portraitXml.part) {
len++;
//不知道怎么取得XML子节点的长度,要是转换为XML文档类的话觉得很麻烦
}
loadPor();
loadXml.removeEventListener(Event.COMPLETE,comH);
//卸载监听
}
private function loadPor():void {
if (i<len) {
var loadPic:loadPic_mc=new loadPic_mc(portraitXml.part{i}.@path);//基于发布系统的问题,此处的大括号需要换为中括号.
loadPic.fun=loadPor;
sprite.addChild(loadPic);
//在sprite里添加显示对象loadPic
loadPic.x=i*150;
i++;
} else {
return;
}
}
private function moveRight(event:MouseEvent) {
if (m>0) {
m--;
var aTween:Tween = new Tween( sprite, "x", Back.easeOut, sprite.x, 10-m*150, 1, true);
//移动是直接移动sprite,因为sprite里含N多个loadPic
} else {
return;
}
}
private function moveLeft(event:MouseEvent) {
if (m<len-1) {
m++;
var aTween:Tween = new Tween( sprite, "x", Back.easeOut, sprite.x, 10-m*150, 1, true);
} else {
return;
}
}
}
}
在库里找到rejigger_mc 右键 –链接 类里填入:ActionScript. rejigger_mc
基类可以写成flash.display.Sprite 因为这个类扩展的是Sprite类
注:rejigger_mc里只含两个元件 都是按钮
最后一步,是在主时间上写上代码如下:
代码:
this.stage.frameRate=31;
this.stage.scaleMode=StageScaleMode.NO_SCALE;
this.stage.align=StageAlign.TOP_LEFT;
import ActionScript.rejigger_mc;
var myrejigger:rejigger_mc=new rejigger_mc();
addChild(myrejigger);
导出去测试好了:)
还不错吧,对比下XML+MovieClipLoader类就知道了,编写3.0首先代码布局上有很层次感,容易阅读,我想这点主要归功于处理事件机制了,显示对象不在像以前那样混乱,现在更有层次感。其次处理XML比以前要便捷,最后呢,最重要的一点就是编完之后有种酷酷的感觉,代码和界面的分离。。。。。
可能刚开始有很多的不习惯尽管事实上没有2.0方便吧,但做的东西多了相信你一定会体会更多的优越性,足够弥补它的不便。
发表评论
-
3d加载人物
2011-03-09 13:35 1145package { import caurin ... -
Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程
2011-03-09 13:34 970欢饮大家来到Dragon的 ... -
Flash 3D引擎比较
2011-03-09 13:33 1129最近做的一个项目中需要用到 3D,所以粗略的学习了一些目前Fl ... -
基于Flash的3D引擎-Alternativa3D
2011-03-09 10:03 1533Alternativa3D 是由 Altenativa ... -
Flash 3D引擎比较
2011-03-02 00:49 867http://blog.sina.com.cn/s/blog_ ... -
3角函数转化函数整理
2011-03-02 00:42 618先发一不分//有空再补全~~class Math2 { var ... -
ActionScript 3.0 基础之以文本形式、XML形式和JSON形式与ASP.NET通信
2011-03-02 00:26 1157介绍Flash ActionScript 3.0 以文本形式与 ... -
AS3的A寻路代码,了解一下
2011-03-02 00:01 941地形数据不属于A*寻路 ... -
FLASH与密码学-常用加密算法的AS3.0实现
2011-03-01 23:49 1503如果对技术有兴趣的, ... -
AS3.0的加载机制
2011-03-01 23:44 1131还是坚持自己的原则,从 ... -
AS3.0 styleSheet
2011-03-01 23:41 1775styleSheet和TextFormat类似,也是用来定义文 ... -
Flash Socket通信的安全策略问题
2011-02-27 23:38 806收录一下先,确实解决了问题。 将flash发布为htm ... -
纯AS代码实现可预览本地图片的flash上传客户端(AS3)
2011-02-15 22:30 841需要Flash Player 10+版本的支持,原理就是主要利 ... -
Flash 3D引擎比较
2011-02-15 21:27 1178转载此文目的是让喜爱研究Flash 3D的朋友能有个大致了解, ... -
AS3.0 styleSheet
2011-02-15 17:33 1541Flash Player 支持原 CSS1 规范 (www.w ...
相关推荐
AS3.0+XML 相册是一种常见的网页动态展示方式,尤其适用于创建具有交互性和可扩展性的图片库。在这个项目中,开发人员使用了ActionScript 3.0(AS3.0),这是一种强大的编程语言,它是Adobe Flash Player和Adobe AIR...
AS3.0+xml通用图片滚动是一个使用Adobe ActionScript 3.0编程语言和XML数据格式实现的图片轮播组件。这个组件适用于网页、Flash应用程序或其他需要动态展示多张图片的场景。以下是关于这个主题的详细知识点: 1. **...
在本文中,我们将深入探讨如何使用AS3.0(ActionScript 3.0)通过XML来创建一个图片相册。ActionScript是Adobe Flash Professional和Flex Builder等开发工具中用于创建交互式内容的主要编程语言,而XML则是一种轻量...
在本文中,我们将深入探讨如何使用Flash AS3.0与XML技术来创建一个简单的幻灯片应用程序。Flash ActionScript 3.0(AS3.0)是Adobe Flash平台上的编程语言,它为开发者提供了强大的功能,可以创建丰富的交互式内容。...
在AS3.0中,通过XML来加载外部图片是一种常见的技术,这主要涉及到ActionScript 3.0的基础知识,XML的解析以及加载机制,以及图片显示对象的使用。以下是关于这个主题的详细解释: 1. **AS3.0基础知识**: AS3.0是...
AS3.0(ActionScript 3.0)是Adobe Flash平台中的编程语言,它是一种基于ECMAScript的脚本语言,主要用于创建互动式内容、网页动画以及富互联网应用程序(RIA)。这个“AS3.0简单相册”项目是为初学者设计的,旨在...
7. **外部数据加载**:如果菜单项需要从外部文件动态加载,可以使用`Loader`和`URLLoader`类加载XML或JSON数据。 8. **优化性能**:避免不必要的计算和重复渲染,使用` ENTER_FRAME`事件监听器来控制动画更新,提高...
Loader类是AS3.0中的核心组件,用于加载各种类型的数据,包括图像、SWF文件和XML。 ```actionscript var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.PROGRESS, onProgress); ...
在本文中,我们将深入探讨如何使用AS3.0(ActionScript 3.0)通过XML来实现图片的3D效果加载。ActionScript是Adobe Flash Professional和Flex Builder等工具中的编程语言,广泛用于创建互动性的Web内容,而XML则是一...
在这个“as3.0 源码”压缩包中,我们很可能会找到与使用AS3.0读取XML数据和动态添加动画相关的源代码。Flash实例通常指的是在Flash环境中创建的SWF文件或对象,它们可以包含AS3.0编写的代码。 在AS3.0中,XML是一种...
在本文中,我们将深入探讨如何在AS3.0(ActionScript 3.0)中使用XML来读取外部图片,并实现图片的滚动展示。ActionScript是Adobe Flash Professional和Flex Builder等开发工具中用于创建交互式内容的主要编程语言,...
1. **使用Loader类**:在AS3.0中,`Loader`类是负责加载内容的核心。我们可以创建一个`Loader`对象,然后调用其`load()`方法来加载资源。同时,`Loader`对象的`contentLoaderInfo`属性可以提供关于加载进度的信息,...
AS3.0(ActionScript 3.0)是Adobe Flash平台上的主要编程语言,用于创建交互式内容、游戏和应用程序。这个"AS3.0类 flash 抽象类工具包"是一个专为AS3.0开发者设计的实用工具集合,尤其对新手极其友好。它包含了...
- **Loader类**:加载图片、SWF、XML等外部资源。 - **AssetManager**:自定义资源管理器,用于统一管理和缓存游戏资源。 8. **物理引擎** - 虽然简单小游戏可能不涉及复杂的物理模拟,但了解Box2D或P2.js等物理...
1. 类与对象:在AS3.0中,一切都是对象,每个对象都是某个类的实例。类定义了对象的属性和方法,而对象则是类的实体化。 2. 继承:AS3.0支持单继承,一个类可以继承另一个类的属性和方法,实现代码复用。 3. 封装:...
AS3.0提供了内置的XML和JSON类,可以轻松地解析这些数据,并动态加载和显示图片。 【优化与性能】 考虑到Flash的性能限制,尤其是在处理大量图片时,优化代码至关重要。这可能包括合理使用缓存、减少不必要的计算...
首先,我们需要理解AS3.0中的Loader类。Loader类是负责加载不同类型的媒体内容,包括图像(JPEG、PNG、GIF等)的核心组件。以下是一个基本的步骤来实现外部图片的加载: 1. **创建Loader对象**: 在AS3.0代码中,...
AS3.0(ActionScript 3.0)是Adobe Flash平台上的主要编程语言,用于创建交互式内容,尤其是网络游戏。在"as3.0 人物行走源码"这个项目中,我们可以深入学习如何利用AS3.0实现游戏中的角色动画和行走功能。 1. **...
在Flash中,我们可以使用ActionScript 3.0(AS3)来解析这个XML文件。首先,我们需要加载XML文件,这可以通过`XMLLoader`类实现,代码如下: ```actionscript var xmlLoader:URLLoader = new URLLoader(); ...