flash 8新特性开发实例教程.docx
- 文档编号:10031971
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:14
- 大小:134.54KB
flash 8新特性开发实例教程.docx
《flash 8新特性开发实例教程.docx》由会员分享,可在线阅读,更多相关《flash 8新特性开发实例教程.docx(14页珍藏版)》请在冰豆网上搜索。
flash8新特性开发实例教程
flash8新特性开发实例教程
flash8新特性的API
看看上图,flash8特性的API主要集中在下面4块
1图形效果
[Filters]多种和滤镜有关的类,可以将阴影,模糊这些特效
加到你的mc上。
[GeometryClasses]提供了Matrix,Point,RectangleandColorTransforms等各种颜色变换效果
[MovieClipExtensions]除了可以让mc可以利用Filter,
geometry外。
还提供了[BlendingModes]。
可以让mc的每一个
点的颜色都和背景相融合,这样可以增加很多效果。
[Bitmap
Caching]可以让一个mc[cacheAsBitmap].作为位图的cache,
不用每次都进行矢量计算,提高了performance.
[BitmapDisplay]提供了对位图精确到像素的访问能力
2文字效果:
[TextFieldExtensions],flash中原有的TextField
增加了filter[滤镜]还可以定义sharpness,thickness。
[TextRendererControl],文字呈现方式,比如
AntiAliasType,ColorType,GridFitType.
3文件:
[FileReference]:
用于文件上传和下载
4外部接口
[ExternalInterface]:
用于flash和javascript
xml,的交互。
主要类如下:
BitmapData
BitmapData.Channel
Button
ExternalInterface
FileReference
FileReferenceList
Filters
BevelFilter
BitmapFilter
BitmapFilter.Quality
BitmapFilter.Type
BlurFilter
ColorMatrixFilter
ConvolutionFilter
DisplacementMapFilter
DropShadowFilter
GlowFilter
GradientBevelFilter
GradientGlowFilter
Mode
Geom
ColorTransform
Matrix
Point
Rectangle
Transform
MovieClip
MovieClip.BlendModeType
Text
TextRenderer
TextRenderer.AntiAliasType
TextRenderer.ColorType
TextRenderer.FontStyle
TextRenderer.GridFitType
TextField
这里为了最快的速度上手。
只是用mtasc和写字本。
方法如下:
1在http:
//www.mtasc.org/下载mtasc,解压缩到d:
/mtasc/[随便什么目录都成]
2将d:
/mtasc/加入classpath.
3在d:
/mtasc/新建Sonny.as,代码如下:
classSonny{
functionSonny(){
varsonny_mc:
MovieClip=_root.createEmptyMovieClip("sonny",_root.getNextHighestDepth());
sonny_mc._x=sonny_mc._y=100;
sonny_mc.beginFill(0xff6633,100);
sonny_mc.moveTo(0,0);
sonny_mc.lineTo(100,0);
sonny_mc.lineTo(100,100);
sonny_mc.lineTo(0,100);
sonny_mc.lineTo(0,0);
varBlurTest=newflash.filters.BlurFilter();
BlurTest.clone=true;
BlurTest.blurX=20;
BlurTest.blurY=20;
sonny_mc.filters=[BlurTest];
}
staticfunctionmain(){
vartmp=newSonny();
}
}
代码解释:
首先新建了一个Sonny_mc,然后在中间画了一个橙色的正方形。
然后通过BlurFilter加了一个blur的效果在正方形上
4新建sonny.bat
mtasc-header300:
300:
25-main-version8Sonny.as-swfSonny.swf
pause
双击sonny.bat。
则可看到Sonny.swf
则可以看到边缘很好的模糊效果如下:
环境:
windows系统,flashmx2004中文版
1进入C:
\DocumentsandSettings\yourname\LocalSettings\ApplicationData\Macromedia\FlashMX2004\zh_cn\Configuration\PublishProfiles
注意,这里的yourname是你windows系统的用户名。
将default.xmlcopy一份。
命名为flash8.xml.将
第2行的
默认文件改成flash8
64行
2重新启动flash8。
在发布设置,点击当前配置后面的导入按钮
,倒入flash8.xml。
点击下方的确定。
如图所示:
好。
马上做一个测试:
新建fla,在flash帧上加入如下代码:
//createtextfield
this.createTextField("txtField",this.getNextHighestDepth(),10,10,300,100);
txtField.html=true;
txtField.htmlText="
//www.study-";’target=_blank>http:
//www.study-";
txtField.textColor=0x0055CC;
txtField.antiAliasType=flash.text.TextRenderer.AntiAliasType.ADVANCED;
vardropShadow=newflash.filters.DropShadowFilter();
dropShadow.blurX=5;
dropShadow.blurY=5;
dropShadow.distance=3;
dropShadow.angle=35;
dropShadow.quality=2;
dropShadow.alpha=0.5;
txtField.filters=[dropShadow];
发布。
注意。
要在IE中看。
因为一般只更新IE中的player。
如果字下面出现了明显的阴影.则成功了.结果如下图所示:
下面我们看个例子:
有如下3张图片:
gif图片如下:
png图片如下
jpg图片如下:
在flash8中,我们可以将他们load进flash
新建一个fla,加入如下as代码:
Stage.scaleMode="noScale";
urls=["progressive.jpg","test2.png","test1.gif"];
vari=0;
while(i<3){
varcl=this.createEmptyMovieClip("test"+i,i+1);
cl.createEmptyMovieClip("holder",1);
cl.holder.loadMovie(urls[i]);
cl.onPress=function(){
this.startDrag();
};
cl.onRelease=function(){
this.stopDrag();
};
i++;
}
最终的结果如下:
看看 ExternalInterface类的 主要方法。
可以看出,ExternalInterface类 主要是用于和xml,还有javascript进行交互的。
_arrayToXML
_argumentsToXML
_objectToXML
_toXML
_objectToAS
_arrayToAS
_argumentsToAS
_toAS
_arrayToJS
_objectToJS
_toJS
JavaScripttoFlash
ActionScript
导入flash.external.ExternalInterface;
classExternalInterfaceTest
{
publicfunctionExternalInterfaceTest()
{
//第一个参数是暴露给javascript的function名
//第二个参数是真实调用的
ExternalInterface.addCallback("actionScriptFunction",actionScriptFunction);
}
publicfunctionactionScriptFunction(input:
String):
String
{
trace(input);
returninput;
}
}
HTML/JavaScript
//flashId,是网页中flash的id名
varflash=(navigator.appName.indexOf("Microsoft")!
=-1)?
window["flashId"]:
document["flashId"];
flash.actionScriptFunction("HelloWorld.");
FlashtoJavaScript
在HTML页面:
functionmyJavaScriptFunction(input)
{
window.alert(input);
}
ActionScript
导入flash.external.ExternalInterface;
classExternalInterfaceTest
{
publicfunctionExternalInterfaceTest()
{
if(ExternalInterface.available)
{
ExternalInterface.call("myJavaScriptFunction","HelloWorld");
}
}
}
FileReference 最主要的方法有2个:
最主要的方法有2个,browse(),
用于点击后弹出文件选择框
upload();
如果你上传的服务器脚本是sonny.jsp。
上传则可以写成
upload("sonny.jsp","POST");
upload常见事件如下:
onUploadStart:
开始上传
onUploadProgress 上传进度
onUploadSuccess 上传成功
onUploadFailed 上传失败
好,下面举个例子。
因为没有服务器的支持。
主要 介绍browse一段。
新建 fla,然后在root上建立 一个sonny_mc和一个sonny_txt[动态文本]
将下面脚本放入 帧上:
varfileRef=(new.FileReference());
sonny_mc.onRelease=function(){
if(fileRef.browse()){
sonny_txt.text="FileName:
"+fileRef.name;
}
};
发布一下。
在浏览器中看看效果。
一般来说,使用 filter类分为3个步骤。
1 设置 filter对象
2定义filter的各个参数
3 将需要效果的mc的filters属性设置为由 filter对象组成的Array.如下所示:
varmyfilter=newflash.filters.DropShadowFilter();
//customizethefilterthroughpublicproperties
mc.filters=[myfilter];
下面演示一个经典的例子。
显示了模糊,阴影,外辉,内辉四种效果(//Blur,//Shadow,//GlowFilter(outer),//GlowFilter(inner))
新建一个fla,画一个正方形,分明命名为 clip_0到clip_3,将下面的代码加入帧上。
varmyBlur=newflash.filters.BlurFilter();
myBlur.clone=true;
myBlur.blurX=20;
myBlur.blurY=20;
clip_0.filters=[myBlur];
varmyShadow=newflash.filters.DropShadowFilter();
myShadow.strength=1;
myShadow.blurX=20;
myShadow.blurY=20;
myShadow.angle=45;
clip_1.filters=[myShadow];
varmyGlow=newflash.filters.GlowFilter();
myGlow.strength=1;
myGlow.blurY=20;
myGlow.blurX=20;
myGlow.inner=false;
myGlow.color=0xff0000;
myGlow.strength=1;
myGlow.angle=45;
clip_2.filters=[myGlow];
varmyGlow=newflash.filters.GlowFilter();
myGlow.strength=1;
myGlow.blurY=20;
myGlow.blurX=20;
myGlow.inner=true;
myGlow.color=0x000000;
myGlow.strength=1;
myGlow.angle=45;
clip_3.filters=[myGlow];
可以看到如下效果:
主要介绍了flash中的bitmap[位图]类。
具体是flash.display.BitmapData
主要有setPixel,getPixel,通过这2个方面来提供对位图的像素操作
我们马上来看一个例子吧:
新建一个fla,把如下代码放在帧上:
varimg_bmp=newflash.display.BitmapData(256,256,true);
for(vary:
Number=0;y<256;y++){
for(varx:
Number=0;x<256;x++){
vara:
Number=y;
varr:
Number=x;
varg:
Number=256-x;
varb:
Number=256-y;
varc:
Number=(a<<24)|(r<<16)|(g<<8)|(b<<0);
img_bmp.setPixel32(x,y,c);
}
}
_root.createEmptyMovieClip("bmp",1);
_root.bmp.attachBitmap(img_bmp,2);
发布。
出现结果如下:
下面是学习了国外网站的一个例子,代码如下:
pixelSize=5;varcontain=_root.createEmptyMovieClip("contain",1);
contain._y=235;bitmapData=newflash.display.BitmapData(300,225,false);
contain.attachBitmap(bitmapData,1);
bitmapData.draw(clip);
for(varx=0;x<300/pixelSize;x++)
{
for(vary=0;y<225/pixelSize;y++)
{
varseed=_root.bitmapData.getPixel(x*pixelSize,y*pixelSize);
for(vara=0;a { for(varb=0;b { _root.bitmapData.setPixel(x*pixelSize+a,y*pixelSize+b,seed); } } } } 运行后的结果如下图,图的上半部分是原图,下半部分是生成的像素图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flash 8新特性开发实例教程 特性 开发 实例教程