2008-05-16 20:13
function getLastInfo() {
LastXPosition = _xmouse;
LastYPosition = _ymouse;
LastTime = getTimer();
}
function getNowInfo() {
NowXPosition = _xmouse;
NowYPosition = _ymouse;
NowTime = getTimer();
}
this.onEnterFrame = function() {
getNowInfo();
XMove = NowXPosition-LastXPosition;
YMove = NowYPosition-LastYPosition;
xs = Math.round(XMove/(NowTime-LastTime)*1000)/1000*1000;
XSpeed = xs+"pps";
ys = Math.round(YMove/(NowTime-LastTime)*1000)/1000*1000;
YSpeed = ys+"pps";
rs = Math.round(Math.sqrt(Math.pow(xs, 2)+Math.pow(ys, 2)));
RSpeed = rs+"pps";
as = Math.round(Math.atan2(ys, xs)/(Math.PI/180));
ASpeed = as+"deg";
trace("X方向的速度为:"+XSpeed)
trace("Y方向的速度为:"+YSpeed)
trace("速度大小为:"+RSpeed)
trace("速度方向为:"+ASpeed)
getLastInfo();
}; |
2008-03-20 10:22
按钮不要起close等蓝色字符的 否则会出错误 其他保留字也不能取
mcl的complete事件和onInitial 其实是不一样的 娃哈哈 |
2008-03-11 17:55
this.swapDepths(_parent.getNextHighestDepth()); |
2008-02-10 20:32
var Obj:Object = new Object();
var delta_b:Boolean;
var T:Number;
Obj.onMouseWheel = function(delta) {
if (!delta_b) {
if (delta>0) {
trace("next");
} else if (delta<0) {
trace("prev");
}
delta_b = true;
clearInterval(T);
T = setTimeout(function () {
delta_b = false;
}, 300);
}
};
Mouse.addListener(Obj);
|
2008-02-07 23:43
on (release) {
_parent.main.stage.all.allscene.portfolio._visible = true;
import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(this._parent.main.stage.all.camera, "_x", Strong.easeInOut, this._parent.main.stage.all.camera._x, 0, 50, false);
var tween_handler_1 = new Tween(this._parent.main.stage.all.camera, "_y", Strong.easeInOut, this._parent.main.stage.all.camera._y, -1200, 50, false);
tween_handler_1.onMotionFinished = function() {
_parent.main.stage.all.allscene.home._visible = false;
_parent.main.stage.all.allscene.about._visible = false;
};
}
|
2008-02-04 10:32
| Back |
在过渡范围外的一端或两端扩展动画一次,以产生从其范围外回拉的效果。 |
| Bounce |
在过渡范围的一端或两端内添加弹跳效果。弹跳数与持续时间相关,持续时间越长,弹跳数越多。 |
| Elastic |
添加一端或两端超出过渡范围的弹性效果。弹性量不受持续时间影响。 |
| Regular |
在一端或两端添加较慢的运动。此功能使您能够添加加速效果、减速效果或这两种效果。 |
| Strong |
在一端或两端添加较慢的运动。此效果类似于 Regular 缓动类,但它更明显。 |
| None |
添加从开始到结尾无任何减速或加速效果的相同的运动。此过渡也称为线性过渡。 |
这六种缓动计算类的每一种都有三个缓动方法,它们指明缓动效果应用于动画的哪个部分。此外,None 缓动类还有第四个缓动方法:easeNone。下表中描述了这些缓动方法:
|
方法
|
说明
|
| easeIn |
在过渡的开始提供缓动效果。 |
| easeOut |
在过渡的结尾提供缓动效果。 |
| easeInOut |
在过渡的开始和结尾提供缓动效果。 |
| easeNone |
指明不使用缓动计算。只在 None 缓动类中提供。 |
|
2008-01-14 11:39
Gaspard de le Nuit
expression= loop_out("pingpong",0)
Die Welt ist tief,und tiefer als der Tag gedacht
138 638 96438
0535 6902718
(0535)6903314
010 85135065
http://www.cqmba.com.cn/main/perso |
2008-01-14 11:37
开始画面一片模糊,然后鼠标到哪里哪里就清晰
也可以到那个地方那个地方曝光 |
2008-01-12 17:00
import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(this, "_xscale", Elastic.easeOut, this._xscale, 80, 30, false);
new Tween(this, "_yscale", Elastic.easeOut, this._yscale, 80, 30, false);
on (rollOver) {
import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(this, "_xscale", Elastic.easeOut, this._xscale, 80, 30, false);
new Tween(this, "_yscale", Elastic.easeOut, this._yscale, 80, 30, false);
}
on (rollOut) {
new Tween(this, "_xscale", Elastic.easeOut, this._xscale, 60, 30, false);
new Tween(this, "_yscale", Elastic.easeOut, this._yscale, 60, 30, false);
}
|
2007-12-27 09:39
HTML与FLASH之间的“静态”传值
在论坛上经常看见有新手问到“我想让FLASH得到URL中的参数ID号,该怎么办?”“某某视频网站的FLASH播放器是如何播放不同ID的视频的?”...诸如此类问题看到了太多,每次都有一堆回帖,众说纷纭,里面难免有误导性质的回复。今天特结合自己平时工作中使用的心得对此类问题做一个小小的归纳。
我所指的 静态传值是区别于与服务端通信进行值传递的方式,例如LoadVars,XML,Remoting之类,后者暂且不在本文的讨论范围内,当你想让FLASH获取URL中的参数时,你为何不换个角度想了?其实我们可以让服务端动态生成SWF的的插入代码,主动将我们需要的参数“静态”传递给FLASH,FLASH直接用就可以了,根本不需要自己去拿,而以何种形式传递给FLASH,就是我所指的静态传值。我知道的可行的HTML与FLASH之间的静态传值方法有三种:
- SWF地址后使用参数传递符“?”
- FlashVars传递
- JS控制
下面来具体介绍下这三种方式的传递是如何工作的:
一、SWF地址后使用参数传递符“?”
我们知道,在ULR地址中使用参数传递符“?”可以以GET方式传递参数,例如http://www.v-sky.com?uid=12&uname=vsky,这里使用了参数传递符“?”,同时使用了连接符“&”做为变量分隔标识,以这种规范的格式来传递两个参数:uid=12和uname=vsky,那么服务端可以使用GET方式获取这两个值。
在FLASH中我们同样可以采用类似的方式来传递参数,HTML页面中插入SWF文件最常用的就是使用Object标签和Embed标签结合的方式,这也是Adobe的推荐方式:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf?uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf?uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
其中粗体部分对应的就是SWF文件的地址,那么我们可以在这个地址后面通过类似于URL中GET方式传参的方法来个SWF传递参数,例如上面代码在页面完全加载完毕时,它已经给SWF文件写入了两个变量:uid=12和uname=vsky。
二、FlashVars传递
你可以查阅FLASH帮助文档来看FlashVars的官方定义。其实在HTML语法中,这是一个被很多新手所忽视的属性,同样以上面的参数为例,下面用FlashVars来传递变量:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf" />
<param name="FlashVars" value="uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf" FlashVars="uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
跟方式一相同,它也是直接给FLASH里添加了这两个变量。但我个人 推荐使用此方式,结合 SWFObject的使用,使用FlashVars来传递变量有很多好处,例如代码清晰,容易管理,浏览其兼容,符合标准。他们的结合使用在“ 为FLASH程序构造灵活的接口”一文中我已经做了介绍(PS:随后我会提供一个复杂点的、有说服力的实际应用来说明这种灵活接口的使用)。
三、JS控制
对于客户端页面中的资源,JS通过DOM结构来控制它们可以说是随心所欲的,FLASH也不例外,下面是Flash Player的Javascript方法一览表:
Play() —————————————- 播放动画
StopPlay()————————————停止动画
IsPlaying()———————————– 动画是否正在播放
GotoFrame(frame_number)—————- 跳转到某帧
TotalFrames()——————————- 获取动画总帧数
CurrentFrame()——————————回传当前动画所在帧数-1
Rewind()————————————-使动画返回第一帧
SetZoomRect(left,top,right,buttom)——-放大指定区域
Zoom(percent)——————————改变动画大小
Pan(x_position,y_position,unit)————使动画在x,y方向上平移
PercentLoaded()—————————-返回动画被载入的百分比
LoadMovie(level_number,path)———– 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)—— movie_clip跳转到指定标签
TCurrentFrame(movie_clip)————— 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)—————–回传movie_clip当前标签
TPlay(movie_clip)—————————播放movie_clip
TStopPlay(movie_clip)———————-停止movie_clip的播放
GetVariable(variable_name)—————–获取变量
SetVariable(variable_name,value)———–变量赋值
TCallFrame(movie_clip,frame_number)—call指定帧上的action
TCallLabel(movie_clip,label)—————-call指定标签上的action
TGetProperty(movie_clip,property)——–获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)———-设置movie_clip的指定属性
在这里我们只需要使用的是粗体标识的SetVariable方法,JS通过调用此方法能够直接更改SWF中的变量值。首先我们需要定义插入的SWF的ID,例如id为VskyDemo,那么我们可以通过下面的JS语句来完成SWF内部变量的设置:
window.document.VskyDemo.SetVariable("uid", 12);
很简单吧,就是这样的。除非是涉及到了HTML中SWF之外元素跟它交互,否则我一般不使用JS来控制SWF里的变量,因为我总觉得怪怪的,呵呵,个人习惯吧。
多多实践,不要觉得这些小东西不起眼,小东西多了,聚结到一起了就是一个大的应用。
条条大路通北京,选择你自己喜欢的,自己认为便捷的方式就可以了,目前我是没有发现这三个方式存在功能上的缺陷。
欢迎大家加入讨论,如承蒙转载,请注明出处: http://www.v-sky.com/blog/index.php/archives/179
[ 本帖最后由 llkings 于 2007-6-4 07:56 编辑 ]
|

我的Blog空间 = Simple Life= [http://www.v-sky.com]
|
|
|
|
|