AS3制作旋转文字效果

1.建一个falsh文档,命名为:动态文本旋转

2.把Rotator.as ,第三方类文件放到与“动态文本旋转.fla”同一个文件夹中


2.在动态文本旋转.fla的动作面板中写代码

//导入必要的类Rotator
import Rotator;
//___________________________________设定必要的变量
//变更words用于存储显示的文字
var words:String = "\n各位亲爱的读者:\n"+
"  您们好!\n  很高兴与您分享经验。\n    磨砺青春之剑需要心静。只有当你真正的静下心来,你才能始终想着自己的目标,你才能最大化的集中精力。经验告诉我们,高度集中的精力带来的周密思考和大脑的高速运转,能让你策马扬鞭,战无不胜!心静也是摒弃各种干扰因素的良药,耐得住喧嚣,耐得住寂寞,高三的路上,我们还怕什么呢!";
//声明一个布尔值,标识当前文本是否正在旋转
var isRolling:Boolean = true;
//声明一个整型变量,用于计数显示的文字数
var counter:int = 0;
//____________________________________声明新文本
//新建显示文本tf
var tf:TextField = new TextField();
//设置文本自动换行;
tf.wordWrap = true;
//设置文本宽和高为400像素
tf.width = 400;
tf.height = 400;
tf.textColor = 0xFFFFFF;
//显示默认的文本边框(黑色)
tf.border = true;
//____________________________________设置格式
//声明一个TextFormat实例,用于设置文本的格式
var textFormat:TextFormat = new TextFormat();
//左右留白20像素
textFormat.leftMargin = 20;
textFormat.rightMargin = 20;
//自动两端对齐
textFormat.align = "justify";
//字号14
textFormat.size = 14;
//行间距12像素
textFormat.leading = 12;
//字间距5像素
textFormat.letterSpacing = 5;
//设置为默认格式
tf.defaultTextFormat = textFormat;
//______________________________________设置用于绘制文本的位图
//声明一个位图信息对象bmd,其宽和高各+1是为了显示出文本右侧和下侧的外边框
var bmd:BitmapData = new BitmapData(tf.width+1,tf.height+1,true,0x00FFFFFF);
//使用draw方法绘制当前的文本(当前无文本内容)
bmd.draw(tf);
//声明位图类bm,引用bmd的信息
var bm:Bitmap = new Bitmap(bmd);
//平滑显示位图内容
bm.smoothing = true;
//位图位置置于舞台中央
bm.x = (stage.stageWidth - bm.width) /2;
bm.y = (stage.stageHeight - bm.height) /2;
//声明一个Rotator实例,定位bm的注册点为正中心
var rotator:Rotator = new Rotator(bm,new Point(stage.stageWidth/2,stage.stageHeight/2));
//添加bm到显示列表
addChild(bm);
//_______________________________________设置自定义右键菜单项
//声明一个自定义菜单实例menu
var menu:ContextMenu = new ContextMenu();
//声明一个自定义菜单项menu_item1,其显示文字为"重新显示文字动画"
var menu_item1:ContextMenuItem = new ContextMenuItem("重新显示文字动画");
//将新菜单项添加到menu中
menu.customItems = [menu_item1];
//设置menu为主时间线的菜单
this.contextMenu = menu;
//_______________________________________添加必要的侦听器
//侦听播放头事件,用于旋转图像
stage.addEventListener(Event.ENTER_FRAME,rotateTF);
//侦听鼠标左键点击事件,用于切换图像是否旋转的状态
stage.addEventListener(MouseEvent.CLICK,toggleRotate);
//侦听自定义菜单项事件,当选择自定义菜单项时,执行侦听器函数restart
menu_item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,restart);
//_______________________________________定义各侦听器函数
//定义toggleRotate侦听器,当点击鼠标左键时切换布尔值isRolling
function toggleRotate(e:MouseEvent):void {
	isRolling = !isRolling;
}
//定义rotateTF侦听器
function rotateTF(e:Event):void {
	//当words内的字符没有显示完全时
	if (counter < words.length) {
		//每次提取words中的一个新字符
		var insertWord:String =words.substr(counter,1);
		//提取后计数器增加
		counter++;
		//在tf中显示新增加的字符
		tf.appendText(insertWord);
		//调用reDraw函数
		reDraw();
	}
	//当isRolling为true时,每次旋转bm1度
	if (isRolling) {
		//注意rotateBy方法是自定义Rotator类定义的方法
		rotator.rotateBy(1);
	}
}

//定义restart侦听器,当选择自定义菜单命令时执行
function restart(e:ContextMenuEvent):void {
	//初始化,重新执行
	tf.text = "";
	bmd.fillRect(bmd.rect,0x00FFFFFF);
	bmd.draw(tf);
	counter = 0;
}
//定义reDraw方法
function reDraw():void {
	//设定一个矩形区域,这个区域是新添加到文本区内字符的区域
	var rec:Rectangle = tf.getCharBoundaries(tf.length -1);
	//在bmd中更新新添加的字符矩形区域内的位图信息
	bmd.draw(tf,null,null,null,rec);
	try {
		//为新字符添加随机彩色发光滤镜
		bmd.applyFilter(bmd,rec,rec.topLeft,new GlowFilter(0xFFFFFF*Math.random(),1,2,2,10));
		//为新字符添加阴影滤镜
		bmd.applyFilter(bmd,rec,rec.topLeft,new DropShadowFilter(1,1));
	} catch (e) {
	}
}


深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值