早教吧作业答案频道 -->其他-->
AS3.0在函数外怎样同时得到a1,a2,b1,b2参数package{importflash.display.MovieClip;importflash.display.Sprite;importflash.geom.Point;importflash.events.MouseEvent;importflash.events.DataEvent;importflash.utils.Timer;publiccl
题目详情
AS3.0在函数外怎样同时得到a1,a2,b1,b2参数
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.events.DataEvent;
import flash.utils.Timer;
public class Trowball extends MovieClip {
private var p1:Point;
private var p2:Point;
private var v1:Number;
private var v2:Number;
public function Trowball() {
var ball=new BALL();
addChild(ball);
ball.x=stage.stageHeight/2;
ball.y=stage.stageWidth/2;
function down(evt:MouseEvent):void{
evt.target.startDrag();
p1=new Point(mouseX,mouseY);
//p1.x=mouseX;
//p1.y=mouseY;
var date:Date=new Date();
var a1:Number=date.seconds;
var b1:Number=date.milliseconds;
trace();
trace("移动前坐标"+p1);
trace("鼠标移动秒数"+a1);
trace("鼠标移动毫秒数"+b1);
}
function up(evt:MouseEvent):void{
evt.target.stopDrag();
p2=new Point(mouseX,mouseY);
var date:Date=new Date();
var a2:Number=date.seconds;;
var b2:Number=date.milliseconds;
trace("移动后坐标"+p2);
trace("鼠标移动秒数"+a2);
trace("鼠标移动毫秒数"+b2);
}
ball.addEventListener(MouseEvent.MOUSE_DOWN,down);
ball.addEventListener(MouseEvent.MOUSE_UP,up);
}
}
}
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.events.DataEvent;
import flash.utils.Timer;
public class Trowball extends MovieClip {
private var p1:Point;
private var p2:Point;
private var v1:Number;
private var v2:Number;
public function Trowball() {
var ball=new BALL();
addChild(ball);
ball.x=stage.stageHeight/2;
ball.y=stage.stageWidth/2;
function down(evt:MouseEvent):void{
evt.target.startDrag();
p1=new Point(mouseX,mouseY);
//p1.x=mouseX;
//p1.y=mouseY;
var date:Date=new Date();
var a1:Number=date.seconds;
var b1:Number=date.milliseconds;
trace();
trace("移动前坐标"+p1);
trace("鼠标移动秒数"+a1);
trace("鼠标移动毫秒数"+b1);
}
function up(evt:MouseEvent):void{
evt.target.stopDrag();
p2=new Point(mouseX,mouseY);
var date:Date=new Date();
var a2:Number=date.seconds;;
var b2:Number=date.milliseconds;
trace("移动后坐标"+p2);
trace("鼠标移动秒数"+a2);
trace("鼠标移动毫秒数"+b2);
}
ball.addEventListener(MouseEvent.MOUSE_DOWN,down);
ball.addEventListener(MouseEvent.MOUSE_UP,up);
}
}
}
▼优质解答
答案和解析
首先你要明白,函数内的变量是局部变量,只能在函数内调用,函数外是不能调用的,要想让函数内的变量让函数外调用,必须引用其值,你可以声明一个类全局变量,将函数内变量的值传递给这个全局变量就可以了.具体是这样做的:
package {
\x05
\x05import flash.display.MovieClip;
\x05import flash.display.Sprite;
\x05import flash.geom.Point;
\x05import flash.events.MouseEvent;
\x05import flash.events.DataEvent;
\x05import flash.utils.Timer;
\x05
\x05
\x05public class Trowball extends MovieClip {
\x05\x05private var p1:Point;
\x05\x05private var p2:Point;
\x05\x05private var v1:Number;
\x05\x05private var v2:Number;
\x05\x05private var ga1:Number;
private var gb1:Number;
private var ga2:Number;
private var gb2:Number;
\x05 public function Trowball() {
\x05\x05
\x05\x05var ball=new BALL();
\x05\x05addChild(ball);
\x05\x05ball.x=stage.stageHeight/2;
\x05\x05ball.y=stage.stageWidth/2;
\x05\x05
\x05\x05\x05
\x05\x05function down(evt:MouseEvent):void{
\x05\x05\x05evt.target.startDrag();
\x05\x05 p1=new Point(mouseX,mouseY);
\x05\x05\x05//p1.x=mouseX;
\x05\x05\x05//p1.y=mouseY;
\x05\x05\x05
\x05\x05 var date:Date=new Date();
\x05\x05 var a1:Number=date.seconds;
ga1=a1;
\x05 var b1:Number=date.milliseconds;
gb1=b1;
\x05\x05
\x05\x05\x05trace();
\x05\x05\x05trace("移动前坐标"+p1);
\x05\x05\x05trace("鼠标移动秒数"+a1);
\x05\x05\x05trace("鼠标移动毫秒数"+b1);
\x05\x05\x05\x05}
\x05
\x05 function up(evt:MouseEvent):void{
\x05\x05\x05evt.target.stopDrag();
\x05\x05 p2=new Point(mouseX,mouseY);
\x05\x05 var date:Date=new Date();
\x05\x05 var a2:Number=date.seconds;;
\x05 var b2:Number=date.milliseconds;
\x05\x05 ga2=a2;
gb2=b2;
\x05\x05\x05trace("移动后坐标"+p2);
\x05\x05\x05trace("鼠标移动秒数"+a2);
\x05\x05\x05trace("鼠标移动毫秒数"+b2);
\x05\x05\x05
\x05\x05
\x05\x05}
\x05\x05
\x05\x05
\x05\x05
\x05\x05ball.addEventListener(MouseEvent.MOUSE_DOWN,down);
\x05\x05ball.addEventListener(MouseEvent.MOUSE_UP,up);
\x05\x05
\x05
\x05 }
\x05}
\x05
}
这样你就可以在类内任何地方调用这些值了.只是换成了ga1,ga2,gb1,gb2;
package {
\x05
\x05import flash.display.MovieClip;
\x05import flash.display.Sprite;
\x05import flash.geom.Point;
\x05import flash.events.MouseEvent;
\x05import flash.events.DataEvent;
\x05import flash.utils.Timer;
\x05
\x05
\x05public class Trowball extends MovieClip {
\x05\x05private var p1:Point;
\x05\x05private var p2:Point;
\x05\x05private var v1:Number;
\x05\x05private var v2:Number;
\x05\x05private var ga1:Number;
private var gb1:Number;
private var ga2:Number;
private var gb2:Number;
\x05 public function Trowball() {
\x05\x05
\x05\x05var ball=new BALL();
\x05\x05addChild(ball);
\x05\x05ball.x=stage.stageHeight/2;
\x05\x05ball.y=stage.stageWidth/2;
\x05\x05
\x05\x05\x05
\x05\x05function down(evt:MouseEvent):void{
\x05\x05\x05evt.target.startDrag();
\x05\x05 p1=new Point(mouseX,mouseY);
\x05\x05\x05//p1.x=mouseX;
\x05\x05\x05//p1.y=mouseY;
\x05\x05\x05
\x05\x05 var date:Date=new Date();
\x05\x05 var a1:Number=date.seconds;
ga1=a1;
\x05 var b1:Number=date.milliseconds;
gb1=b1;
\x05\x05
\x05\x05\x05trace();
\x05\x05\x05trace("移动前坐标"+p1);
\x05\x05\x05trace("鼠标移动秒数"+a1);
\x05\x05\x05trace("鼠标移动毫秒数"+b1);
\x05\x05\x05\x05}
\x05
\x05 function up(evt:MouseEvent):void{
\x05\x05\x05evt.target.stopDrag();
\x05\x05 p2=new Point(mouseX,mouseY);
\x05\x05 var date:Date=new Date();
\x05\x05 var a2:Number=date.seconds;;
\x05 var b2:Number=date.milliseconds;
\x05\x05 ga2=a2;
gb2=b2;
\x05\x05\x05trace("移动后坐标"+p2);
\x05\x05\x05trace("鼠标移动秒数"+a2);
\x05\x05\x05trace("鼠标移动毫秒数"+b2);
\x05\x05\x05
\x05\x05
\x05\x05}
\x05\x05
\x05\x05
\x05\x05
\x05\x05ball.addEventListener(MouseEvent.MOUSE_DOWN,down);
\x05\x05ball.addEventListener(MouseEvent.MOUSE_UP,up);
\x05\x05
\x05
\x05 }
\x05}
\x05
}
这样你就可以在类内任何地方调用这些值了.只是换成了ga1,ga2,gb1,gb2;
看了 AS3.0在函数外怎样同时得...的网友还看了以下:
同温同压下,已知下列各反应为放热反应,下列各热化学方程式中热量数值最小的是()A.2A(l)+B( 2020-04-25 …
同温同压下,已知下列各反应为放热反应,下列各热化学方程式中热量数值最小的是()A.2A(l)+B( 2020-05-21 …
同温同压下,下列各热化学方程式中反应热数值最小的是()A.2A(l)+B(l)=2C(g);△H= 2020-05-21 …
已知直线l上有一点O,点A、B同时从O出发,在直线l上分别向左、向右作匀速运动,且A、B的速度比为 2020-06-12 …
如图,已知直线l及其同侧两点A、B.(1)在直线l上求一点P,使到A、B两点距离之和最短;(2)在 2020-06-20 …
可逆反应A+3B2C+2D,在四种不同的情况下的反应速率分别为:①νA=0.15mol/(L·s) 2020-07-15 …
已知A,B,C是直线l上不同的三点,O是l外一点,向量满足:,记y=f(x).(1)求函数y=f( 2020-07-22 …
设α,β是两个不同的平面,l,m是两条不同的直线,α∩β=m,记α1为直线l与平面α所成的角,A= 2020-07-25 …
已知直线l上有一点O,点A、B同时从O出发,在直线l上分别向f、向右作匀速运动,且A、B的速度比为 2020-08-02 …
已知直线l上有一点O,点A,B同时从O出发,在直线l上分别向左,向右作匀速运动,且A,B的速度之比 2020-08-02 …