MTM动画教程学习笔记1【第四章 渲染技术】

本文介绍了使用Flash AS3.0进行图形绘制的方法,包括创建渐变填充矩形、应用颜色变换、使用滤镜效果、位图显示技术及如何加载外部资源等内容。

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

import flash.geom.Matrix;
import flash.display.GradientType;
import flash.geom.ColorTransform;
import flash.display.MovieClip;
import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Sprite;
import fl.motion.Animator;


// 创建一个渐变填充的矩形
var max:Matrix = new Matrix;
max.createGradientBox(100,100,45,100,100);
graphics.beginGradientFill(GradientType.LINEAR,[0xff0000,0x0000ff],[0,1],[0,255],max);
graphics.drawRect(100,100,200,200);
graphics.endFill();


// 通过ColorTransform改变颜色
var tran:ColorTransform = new ColorTransform(-1,-1,-1,1,255,255,255,0);
// 新旧颜色转换公式 : newRed = oldRed * redMultiplier + redOffset
// Picture为元件库中导出类
// 如果不是在flash ide中,可以用[Embed(source = 'picture.jpg')]
//public var pic:Class;可以直接引用pic
var pic:Picture = new Picture();
addChild(pic);
(pic as MovieClip).transform.colorTransform = tran;


// 滤镜 每个显示对象都有filters属性 ,是一个包含着应用于对象的所有滤镜的数组
// 简单的滤镜使用
(pic as MovieClip).filters = [new BlurFilter(4,4,2)]; // 创建一个简单的模糊滤镜


// 位图显示
// Bitmap 和 BitmapData ,Bitmap继承于DisplayObject而bitmapdata继承于Object,所以bitmapdata不能够直接addChild到舞台
// 这就要用到Bitmap,Bitmap几乎只有一个功能,那就是把BitmapData显示出来
var bitmapData:BitmapData = new BitmapData(100,100,false,0xff0000) // 第三个参数表示是否支持alpha通道
var bitmap:Bitmap = new Bitmap(bitmapData); 
addChild(bitmap);
bitmap.x = bitmap.y = 300;
// 到这可能会觉得bitmap不是和前面的grahics绘图一样吗,graphics绘制的是矢量图,而bitmap是位图,
// 位图的关键是每个像素都可以修改,getPixel,getPixel32,setPixel,setPixel32


for(var i:int = 0,len:int = 20; i < len ;++i)
{
for(var j:int = 0,jlen:int = 20; j< jlen;++j)
{
bitmapData.setPixel(i,j,Math.random() * 0xffffff); // 作用域bitmapData位图数据上
}
}




//加载或者嵌入内容
// 加载:Loader , Loader是一个显示对象,可以addChild到舞台
var loader:Loader = new Loader();
addChild(loader);
loader.load(new URLRequest('pic.jpg'));
// loader.addEventListener(Event,COMPLETE,fun);


//嵌入。[Embed] 元数据标签嵌入
[Embed(source = 'pic.jpg')] // [Embed(source = 'ani.swf')]
var Pic:Class;


[Embed(source = 'ani.swf')]
var Ani:Class;
var ani:Sprite = new Ani();


var pic:Bitmap = new Pic();
addChild(pic);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值