2010-02-11 93 views
0

我希望获得有关简单问题的帮助 - 将一些ActionScript 2转换为AS3。该脚本用于滑动面板。我想我需要添加我的Event Listeners,但我不知道如何去做。将简单的AS2转换为AS3

在舞台上有三个按钮:b1,b2和closeb。幻灯片的面板称为bigSlide,其中包含称为slide1和slide2的独立部分。

在此先感谢!

stop(); 

var currentPosition:Number = bigSlide.slide1.x; 
var startFlag:Boolean = false; 
menuSlide = function (input:MovieClip) { 
if (startFlag == false) { 

startFlag = true; 

var finalDestination:Number = input.x; 
var distanceMoved:Number = 0; 
var distanceToMove:Number = Math.abs(finalDestination-currentPosition); 
var finalSpeed:Number = .3; 
var currentSpeed:Number = 0; 
var dir:Number = 1; 

if (currentPosition<=finalDestination) { 
dir = -1; 
} else if (currentPosition>finalDestination) { 
dir = 1; 
} 

this.onEnterFrame = function() { 
currentSpeed = Math.round((distanceToMove-distanceMoved+1)*finalSpeed); 
distanceMoved += currentSpeed; 
bigSlide.x += dir*currentSpeed; 
if (Math.abs(distanceMoved-distanceToMove)<=1) { 
bigSlide.x = maskMovie.x-currentPosition+dir*distanceToMove; 
currentPosition = input.x; 
startFlag = false; 
delete this.onEnterFrame; 
} 
}; 
} 
}; 
b1.onRelease = function() { 
menuSlide(bigSlide.slide1); 
}; 
bigSlide.slide1.more.onRelease = function() { 
menuSlide(bigSlide.slide2); 
}; 
b2.onRelease = function() { 
menuSlide(bigSlide.slide2); 
}; 

closeb.onRelease = function() { 
root.myLoader.contentPath = null; 
} 

回答

1

开始与输入帧事件:

this.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 

function enterFrameHandler(event:Event):void 
{ 
    var target:MovieClip = MovieClip(event.target); 
} 

目标将被设置到事件(本)的目标。所以你可以操纵它的属性。您必须在脚本的顶部声明“currentSpeed”和“distanceMoved”以及您的其他变量,因为AS3不像变量声明那样宽容。

要添加鼠标监听器:

b1.addEventListener(MouseEvent.CLICK, onClick); 
function onClick(event:MouseEvent) 
{ 
    menuSlide(); 
} 

不要忘记你必须:

import flash.display.MovieClip; 
import flash.events.Event; 
import flash.events.MouseEvent; 

导入你引用的类。

delete this.onEnterFrame; 
在AS3

this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 

这应该让你开始。稍后可以编辑更多。如果你以前从未做过,我不会把从AS2到AS3的跳转称为“简单问题”。这是完全不同的,祝你好运!

+0

只需用上面的例子替换事件b1.onRelease = function(){ 。 –