AS3.0在函数外怎样同时得到a1,a2,b1,b2参数
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/05 03:39:32
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);
}
}
}
![AS3.0在函数外怎样同时得到a1,a2,b1,b2参数](/uploads/image/z/17346101-5-1.jpg?t=AS3.0%E5%9C%A8%E5%87%BD%E6%95%B0%E5%A4%96%E6%80%8E%E6%A0%B7%E5%90%8C%E6%97%B6%E5%BE%97%E5%88%B0a1%2Ca2%2Cb1%2Cb2%E5%8F%82%E6%95%B0)
首先你要明白,函数内的变量是局部变量,只能在函数内调用,函数外是不能调用的,要想让函数内的变量让函数外调用,必须引用其值,你可以声明一个类全局变量,将函数内变量的值传递给这个全局变量就可以了.具体是这样做的:
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;
再问: 感谢回答我的问题 但是我这样输入后 在函数外trace里面的函数值 输出的都是Number的默认值NAN 还是不行啊
再答: 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; private var ga1:Number; private var gb1:Number; private var ga2:Number; private var gb2:Number; public function Trowball() { //你看你这晨,把所有的类成员都写在了构造函数里了。这是不行的。构造函数是初始化的地方。不应该这样写。 var ball = new BALL ; addChild(ball); ball.x = stage.stageHeight / 2; ball.y = stage.stageWidth / 2; ball.addEventListener(MouseEvent.MOUSE_DOWN,down); ball.addEventListener(MouseEvent.MOUSE_UP,up); } //在这里加个大花括号,将最後的花括号去掉就可以了。而且函数前面最好加上private。 private 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; ga1 = a1; var b1:Number = date.milliseconds; gb1 = b1; trace(); trace(("移动前坐标" + p1)); trace(("鼠标移动秒数" + a1)); trace(("鼠标移动毫秒数" + b1)); } private 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; ga2 = a2; gb2 = b2; trace(("移动后坐标" + p2)); trace(("鼠标移动秒数" + a2)); trace(("鼠标移动毫秒数" + b2)); //现在我们来计算一下你所求的值 trace("x方向移动了" +( p2.x - p1.x) + "象素。","y方向移动了" +( p2.y - p1.y) + "象素;"); trace("鼠标移动的时间(秒):"+(ga2-ga1)); trace("鼠标移动的毫秒数:"+(gb2-gb1)) } } } 这是修改後的类,你的类有问题。其实你是想实现按下鼠标拖动对象,松开鼠标停止拖动,然後获取坐标及时间。
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;
再问: 感谢回答我的问题 但是我这样输入后 在函数外trace里面的函数值 输出的都是Number的默认值NAN 还是不行啊
再答: 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; private var ga1:Number; private var gb1:Number; private var ga2:Number; private var gb2:Number; public function Trowball() { //你看你这晨,把所有的类成员都写在了构造函数里了。这是不行的。构造函数是初始化的地方。不应该这样写。 var ball = new BALL ; addChild(ball); ball.x = stage.stageHeight / 2; ball.y = stage.stageWidth / 2; ball.addEventListener(MouseEvent.MOUSE_DOWN,down); ball.addEventListener(MouseEvent.MOUSE_UP,up); } //在这里加个大花括号,将最後的花括号去掉就可以了。而且函数前面最好加上private。 private 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; ga1 = a1; var b1:Number = date.milliseconds; gb1 = b1; trace(); trace(("移动前坐标" + p1)); trace(("鼠标移动秒数" + a1)); trace(("鼠标移动毫秒数" + b1)); } private 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; ga2 = a2; gb2 = b2; trace(("移动后坐标" + p2)); trace(("鼠标移动秒数" + a2)); trace(("鼠标移动毫秒数" + b2)); //现在我们来计算一下你所求的值 trace("x方向移动了" +( p2.x - p1.x) + "象素。","y方向移动了" +( p2.y - p1.y) + "象素;"); trace("鼠标移动的时间(秒):"+(ga2-ga1)); trace("鼠标移动的毫秒数:"+(gb2-gb1)) } } } 这是修改後的类,你的类有问题。其实你是想实现按下鼠标拖动对象,松开鼠标停止拖动,然後获取坐标及时间。
已知a1,a2,b1,b2不等于0,a1*a2+b1*b2=0,求证a1*b2-a2*b1不等于0
excel中 假如A1=1.2 A2=3 B1=ROUND(A1*A2,0) 利用什么函数计算 B2=B1 使B2=4
a1 b1 c1 a2 b1 c2 a3 b2 c3 a4 b1 c4 怎样筛选b列中相同项的行并同时删除其它行 如:a
excel 怎样编公式把A1、A2.An 分别除以B1 在表格中反映结果 而不用一个一个的按=A1/B1 ,=A2/B2
求EXCEL表格函数,A1,A2,A3...B1,B2,B3...,B1=A1,B2=A1+A2,B3=A1+A2+A3
如何在EXCEL让A1+B1+B3的平均数等于B4,同时又满足A1+A2+……+A8=3000,B1+B2+……B
IF函数如何设置当A1=A2时,B1=B2,A1不等于A2时,B1的数值为0
计算行列式|111...1,b1 a1 a1...a1,b1 b2 a2...a2,.b1 b2 b3 ...an|
点A1 A2 A3 A4在射线OA上,点B1 B2 B3在射线OB上,且A1 B1 ‖A2 B2‖A3 B3,A2 B1
数学证明题(行列式)|a1+a2 b1+b2| |a1 b1| |a1 b2| |a2 b1| |a2 b2|| | =
矩阵|a1+b1 a1+b2.a1+bn;a2+b1 a2+b2.a2+bn;.an+b1 an+b2.an+bn|等于
excel 公式 DEGREES(ATAN((B2-A2)/(B1-A1)))+(B1-A1