利用greensock实现外部载入swf-常用于页头动画
作者:admin 日期:2011-03-17昨晚攻关,实现一个网站页头动画的编程应用,目标是:
1、做一个容器swf,能导入外部的飞字动画,并把这个动画复制一份做为阴影(改变色调、坐标移开二个象素);
2、能从外部导入其它的透明FLASH--比如星星、闪动的线条啥的;
3、能从htm页面中动态传参数,以实现调用不同的外部swf
----------------------------------------------------
高手一起就知道这挺简单的,不过我还是花了1个多小时才搞定,对于我们这些常年要搞些飞字、透明swf的网页流水工来说,作用挺大。greensock的LoaderMax类功能超强,可以在载入完成后,把外部影片放到一个MC中,并对此MC的位置、尺寸、比例等进行调整--一句代码顶好几句呀!
html页面部分要加这么一句:
<param name="flashvars" value="file=case.swf" />
FLASH中主要代码(AS3)如下:
import com.greensock.loading.*;
import com.greensock.events.LoaderEvent;
import flash.geom.ColorTransform;
.........
//读页面参数
var myFlashVar = "about.swf";
var varName:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (varName in paramObj)
{
myFlashVar = "images/" + String(paramObj[varName]);
}
//生成LoaderMax队列
var queue:LoaderMax = new LoaderMax({name:"mainQueue",onProgress:progressHandler,onComplete:completeHandler});
//载入自身
var loader:SelfLoader = new SelfLoader(this,{name:"self"});
queue.append( loader );
//先载入飞字1次做为阴影(改变色调为白色),再载入一次做为前景,向左上偏1-2个象素
queue.append(new SWFLoader(myFlashVar, {name:"swf", container:this, x:0, y:0}) );
queue.append(new SWFLoader(myFlashVar, {name:"swf2", container:this, x:-1, y:-2}) );
//载入其它外部动画
queue.append(new SWFLoader("images/shine.swf", {name:"swf3", container:this, x:0, y:0}) );
queue.append(new SWFLoader("images/star.swf", {name:"swf4", container:this, x:0, y:0}) );
//start loading the LoaderMax queue
queue.load();
//载入完成后,对背景飞字改变色调为白色
function completeHandler(event:LoaderEvent):void
{
var _colorTransform:ColorTransform = getChildByName("swf").transform.colorTransform;
_colorTransform.color = 0xffffff;
getChildByName("swf").transform.colorTransform = _colorTransform;
}
引用通告: 查看所有引用 | 我要引用此文章
Tags: greensock类应用 loader swf传参 flashvars
相关日志: