时间: 2021-07-31 作者:daque
用flash mx创造交互式的课件时,很多场所都须要用到拖动。在flash mx中重要的拖动办法有以次三种:无任何牵制的拖动、控制在某一矩形范畴内的拖动、控制在某一路途上的拖动。底下经过范例加以证明。 1. 无任何牵制的拖动
(1)翻开“插入”菜单的“兴建元件”吩咐,在“创造新元件”对话框中,“称呼”框内输出“球”,“动作”采用“片子剪接”。 (2)画一个圆,最佳是让重心和片子剪接的重心对齐。 (3)采用主场景,按f11翻开“库”面板,将刚创造好的球拖动至主场景中。 (4)采用主场景中的球,翻开窗口下方的“属性”面板,在称呼框内输出称呼ball。 (5)右击ball,采用“举措”吩咐,在代码编纂框内输出: on(press) { startdrag("",true);//承诺拖动ball } on(release, releaseoutside) { stopdrag();//开释鼠标时,遏止拖动ball } (6)拖动ball,咱们将看到ball不妨拖动加入景中的大肆场所,开释鼠标时,ball将遏止拖动。 2. 牵制某一矩形范畴内的拖动 将之上代码改为: on(press) { //控制拖动范畴为(0,0)到(100,100)之间,提防坐标原点坐落场景中的左上角。 startdrag("",true,0,0,100,100); } on(release, releaseoutside) { stopdrag(); } 再拖动ball,将看到ball被控制在某一地区内拖动。 3. 沿某一路途的拖动 在某些场所,如经过拖动动静天生数学因变量图像时,由于因变量图像都有一个因变量式牵制,确定了之上两种本领都不行行。这种拖动的要害在乎要按照牵制前提来确定被拖动东西的场所。底下以动静天生圆来证明该类拖动题目的处置本领。 (1)经过“插入”菜单创造一个名为“点”的影戏剪接,画一个小点表白该影戏剪接,提防点的重心和影戏剪接的重心点重合。 (2)转到主场景,新增一图层,将两图层辨别定名为“剧本”和“东西”。 (3)采用“东西”功夫轴,在场景中介入两个“点”的范例,在它们的属性面板中辨别定名为“yuanxi”(表白重心)和“dian”(表白圆周上的点),让它们符合维持确定的隔绝,而且让“yuanxi”坐落场景的中心。 (4)右击“剧本”层第一帧,采用“举措”,在代码编纂窗口内输出以次剧本: drag_flag=false;//拖动标记 x0=yuanxin._x; y0=yuanxin._y; dian_x=dian._x; dian_y=dian._y; //计划圆的半径,这即是拖动圆周的点的牵制前提,被拖动的点到重心的隔绝即是半径。 r=math.sqrt((x0-dian_x)*(x0-dian_x)+(y0-dian_y)*(y0-dian_y)); _root.onenterframe =function() { if (drag_flag) { x = _xmouse; y = _ymouse; angle=math.atan(math.abs(y0-y)/math.abs(x-x0)); dian_x=x0+r*math.cos(angle); dian_y=y0-r*math.sin(angle); //第一象限 if((x>=x0) &&&& (y<=y0)) { dian_x = x0+r*math.cos(angle); dian_y = y0-r*math.sin(angle); depth=angle*180/3.14159; } //第二象限 if((x<=x0) &&&& (y<=y0)) { dian_x=x0-r*math.cos(angle); dian_y=y0-r*math.sin(angle); depth=angle*180/3.14159+90; } //第三象限 if((x<=x0) &&&& (y>=y0)) { dian_x=x0-r*math.cos(angle); dian_y=y0+r*math.sin(angle); depth=angle*180/3.14159+180; } //第四象限 if((x>=x0) &&&& (y>=y0)) { dian_x=x0+r*math.cos(angle); dian_y=y0+r*math.sin(angle); depth=angle*180/3.14159+270; } duplicatemovieclip("dian","dian" add depth,depth); _root["dian" add depth]._x=dian_x; _root["dian" add depth]._y=dian_y; _root.clear(); _root.moveto(x0,y0); _root.linestyle(1,0xff0000,100); _root.lineto(dian_x,dian_y); } } (5)右击dian范例,采用“举措”吩咐,输出以次剧本: on(press) { _root.drag_flag=true;//在dian范例上按下鼠标左键,置拖动标记为真。 } on(release, releaseoutside) { _root.drag_flag=false;//在dian范例上松开鼠标左键,置拖动标记为假。 } (6)尝试片子,拖动dian范例,将看到在场景中会画出一个由点形成的圆。 此后例不妨看出,实行沿某一路途的拖动,要害是要经过牵制前提找到拖动时的东西的坐标。