主题:  关于记录用户访问过得屏幕的问题。

vrfly

职务:普通成员
等级:1
金币:0.0
发贴:21
#12001/2/13 13:57:37
我写了如下的函数用于记录用户访问过得屏幕,向全局变量列表中加入当前位置的frame和moviename。

on AddLocationInfo
global gHistory_List--说明全局变量

set frame_movie=[#theframe:frame(),#themovie:chars(the moviename,1,length(the moviename)-4)]
--取得当前位置信息
append(gHistory_list,frame_movie)--加入列表尾部
if count(gHistory_list)>3 then --确定列表大小
deleteAt(gHistory_List,1)
end if
end
在帧中用go to the frame停止。我该如何触发它,还是我不该用这种方法。
麻烦大侠们指教。



amith

职务:普通成员
等级:1
金币:0.0
发贴:159
#22001/2/13 14:25:02
用 on idle 来调用。 on idle 可以放在 帧代码或者放在影片代码里面。
不过并不是所有的frame 我们可能都要记录吧, 只记录一些有marker标志的frame就可以了吧。这样就要修改 addlocationInfo 函数。



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
#32001/2/13 14:46:27
用beginsprite吧。



vrfly

职务:普通成员
等级:1
金币:0.0
发贴:21
#42001/2/13 19:35:37
十分感谢各位的帮助,现在已经解决了问题,请大侠指教。
原来的addlocationinfo()不变
on goback--制定一个按钮来触发
global gHistory_list

if count(gHistory_list)=2 then
go to frame 2
else
set frameno=gHistory_list[count(gHistory_list)-1].theframe
deleteat(gHistory_list,count(gHistory_list)-1)
deleteat(gHistory_list,count(gHistory_list))
go to frame frameno-- of Movie gHistory_list[count(gHistory_list)].themovie
end if
end

on prepareMovie
global gHistory_List
set gHistory_list=[0]
end prepareMovie

on beginsprite me--用出现一个精灵来触发addlocationinfo
addlocationinfo
end
——————
另外我也试过用on idle函数,但是放在帧中,即使把idlehandlerperiod设成600,也会触发。不知为何,麻烦amith,能否讲清楚一点。



amith

职务:普通成员
等级:1
金币:0.0
发贴:159
#52001/2/14 9:27:58
--即使把idlehandlerperiod设成600,也会触发 。

idlehandlerperiod的帮助里面有: n -- up to 60/n per second.

会触发是好事呀。设成600,这样按照帮助好象是10秒调用一次。

为了避免把当前的帧一直追加,就要进行判断,如果已经把当前标志加进去就不能再加了。
用idle有个好处就是不用在要做标志的地方重复填写调用代码。不知道我说的有没有错。请vrfly
去实践一下。