思路就是使用[Frame(factoryClass="标签")]
Frame元数据标签在FlashBuilder4.6里面 alt+/ 没有这个提示 但是手工打上去的话 运行是没有问题的
现在拿两个类做测试 Preloader类 和 主程序类 Basic_Lesson_1
[Frame]元数据标签 网上介绍是主文档类的重定向 也就是运行项目的时候 会先运行 [Frame(facotryClass="全限定类
名")]
会转到factoryClass指向的这个类 在这个类里面 进行Preloader的显示和进度操作
package
{
import ascb.drawing.Pen;
import com.bless.container.Box;
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.ProgressEvent;
[Frame(factoryClass="com.bless.container.Preloader")]
public class basic_lesson_1 extends Sprite
{
public function basic_lesson_1()
{
addChild(drawCircle());
trace("numChildren"+numChildren);
trace("numChildren"+numChildren);
trace("this:"+this);
}
/**
* 画一个小圆圈
* @return
*/
public function drawCircle(showBorder:Boolean=true):Shape
{
var circle:Shape = new Shape();
if(showBorder){
circle.graphics.lineStyle(1,0x7FAAFF,1);
}
circle.graphics.beginFill(0xAAFF7F,0.5);
circle.graphics.drawCircle(50,50,50);
circle.graphics.endFill();
return circle;
}
}
}
下面是preloader类 这个类继承了 MovieClip使用这个类的nextFrame方法 或者gotoAndPlay(2)来切换到下一帧 这样就可以执行原主程序中的逻辑了
下面的这句代码必须要这样写 用getDefinitionByName来进行类的导入 如果直接var app:YourApplication这样的话 原先的主程序就会在第一帧里面执行了 预加载的类就没有意义了
var basic:Class = getDefinitionByName("basic_lesson_1") as Class;
package com.bless.container
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.utils.getDefinitionByName;
public class Preloader extends MovieClip
{
public function Preloader()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
super();
trace("OK");
loaderInfo.addEventListener(Event.COMPLETE,completeHandler);
}
public function completeHandler(event:Event):void
{
gotoAndPlay(2);
// nextFrame();
initApp();
}
public function initApp():void
{
var basic:Class = getDefinitionByName("basic_lesson_1") as Class;
var myApp:DisplayObject = new basic() as DisplayObject;
addChild(myApp);
}
}
}
分享到:
相关推荐
6. 将所有相关资源(如图片、图标)添加到项目中,并在代码中引用它们。 通过以上步骤,我们可以实现一个既美观又具有独特性的预加载器,提升应用的整体用户体验。自定义预加载器不仅可以作为展示品牌风格的一种...
闪存核心概述Flash Core是我在每个项目中使用的ActionScript类的不断增长的集合。 这些年来,这些类已被构建并添加到商业项目中,作为针对特定问题的通用解决方案。 它们可以直接在您的许多代码中使用,但是经过精心...
- `Preloader.as`:预加载器文件,用于加载游戏资源,确保所有图形和声音文件在游戏开始前完全加载。 - `Mario.as`:马里奥角色的类定义,包括马里奥的动作、碰撞检测、跳跃行为等核心逻辑。 - `tilemap_front.as...
6. **集成到Flex应用**:将自定义预加载器的SWF文件添加到Flex项目的预加载序列中,通常通过修改`-preloader`编译选项。 7. **优化加载效率**:考虑如何优化资源加载,减少用户的等待时间,例如通过压缩图片、合并...
Flex应用的根对象是SystemManager,这是一个Display Class,继承自flash.display.MovieClip,使得预加载器(Preloader)和应用程序(Application)可以在两个不同的帧中运行。SystemManager有一个...
预加载控件(Preloader Control)通常是一个小型的自包含SWF,它的任务是在主应用程序加载之前显示进度条和相关状态信息,给用户一个良好的交互体验。 以下是一些关于Flash预加载的关键知识点: 1. **ActionScript...
5. **Stage对象**:在Flash中,Stage是所有显示对象的顶级容器,我们需要将加载条的显示对象添加到Stage上,以便它们能在舞台上可见。 6. **ActionScript编程**:编写ActionScript代码来控制加载过程,包括初始化...
优化包括使用预加载器(Preloader)来提高加载速度,添加清晰的指示图标以提示用户可交互,以及确保在不同分辨率和浏览器下都能正常显示。 6. **替代方案:HTML5和JavaScript** 虽然Flash已逐渐被淘汰,但HTML5的...
4. **编辑与二次开发**:由于源码是可编辑的,开发者可以深入研究游戏的内部工作原理,修改马里奥的行为、添加新关卡、调整游戏难度或引入新的元素,实现自己的创意。 5. **学习资源**:对于想要学习Flash游戏开发...
在Flex开发中,图片显示是常见的需求,尤其是在创建用户界面或者进行数据可视化时。Flex Builder 3是一款由Adobe推出的集成开发环境(IDE),专门...在实际项目中,灵活运用这些技术,可以极大地提升应用的用户体验。
通常,我们使用 `<mx:Application>` 标签来创建应用程序,但如果使用ActionScript创建,建议避免在构造函数中创建组件,而是放在`createChildren()`函数中,以优化性能。 Flex的SWF文件包含两帧:第一帧包含了...
creationComplete事件表示组件创建完成,最后,Application对象被添加到显示列表中,派发applicationComplete事件,标志着应用加载完成。 5. **性能优化**: 如果使用ActionScript创建Application对象,推荐在...
SWF是Adobe Flash的文件格式,用于存储由ActionScript控制的动画或交互式内容。而影片剪辑是Flash舞台上可独立播放的动画序列,它可以在运行时动态创建、添加和控制。 1. **SWF加载性能**: - **优点**:SWF文件...
ActionScript 3.0(简称AS3.0)作为Adobe Flash的主要编程语言,被广泛应用于交互式内容和游戏的开发。今天我们将深入探讨一款基于AS3.0制作的“泡泡猫”小游戏源码,通过分析其结构、机制和设计原则,以期为初学者...
例如,可以在初始化处理程序中添加事件监听器: ```actionscript event.target.content.addEventListener(FlexEvent.APPLICATION_COMPLETE, func); ``` 在ApplicationComplete处理程序中,可以访问并操作被加载...
6. **添加动作脚本**:如果需要交互性,可以使用ActionScript编写代码。 7. **预览与调整**:在Flash环境中预览动画,根据需要进行调整。 8. **导出和发布**:将完成的动画导出为SWF格式,并将其嵌入到网页代码中。 ...