2010-02-12 5 views
0

Auparavant, j'ai écrit sur la tentative de convertir certains AS2 en AS3. C'est un panneau coulissant. Un grand panneau appelé bigSlide sur scène contient des enfants MC: slide1 et slide2. Sur scène, il y a aussi les boutons b1, b2 et closeb.Résultats avec essayer de convertir AS2 en AS3

Voici le AS2:

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); 
}; 

Et voici ma tentative de le transformer en AS3. Je ne sais vraiment pas ce que je fais très bien. Inutile de dire que le script agit de manière erratique. Si quelqu'un a des suggestions de bibliothèques qui me permettront de faire la même chose sans tout ce tapage, je le sais.

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

stop(); 

var currentPosition:Number = bigSlide.slide1.x; 
var startFlag:Boolean = false; 
var finalDestination:Number; 
var distanceMoved:Number; 
var distanceToMove:Number; 
var finalSpeed:Number; 
var currentSpeed:Number; 
var dir:Number; 

function menuSlide (target:MovieClip):void { 
    if (startFlag == false) { 
     startFlag = true; 
     finalDestination = target.x; 
     distanceMoved = 0; 
     distanceToMove = Math.abs(finalDestination-currentPosition); 
     finalSpeed = .3; 
     currentSpeed = 0; 
     dir = 1; 
     if (currentPosition<=finalDestination) { 
      dir = -1; 
     } else if (currentPosition>finalDestination) { 
      dir = 1; 
     } 


     this.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 
     function enterFrameHandler(event:Event):void { 
     var target:MovieClip = MovieClip(event.target); 
     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 = target.x; 
      startFlag = false; 
      this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 

    } 
      } 

    } 
} 


b1.addEventListener(MouseEvent.CLICK, onClick1); 
function onClick1(event:MouseEvent) { 
menuSlide(bigSlide.slide1); 
}; 

bigSlide.addEventListener(MouseEvent.CLICK, onClickBig); 
function onClickBig(event:MouseEvent) { 
menuSlide(bigSlide.slide2); 
}; 

b2.addEventListener(MouseEvent.CLICK, onClick2); 
function onClick2(event:MouseEvent) { 
menuSlide(bigSlide.slide2); 
}; 

closeb.addEventListener(MouseEvent.CLICK, onClickClose); 
function onClickClose(event:MouseEvent) { 
// root.myLoader.contentPath = null; 
}; 

Merci beaucoup!

Répondre

0

Quand vous dites "agit de manière erratique", que fait-il?

Voici comment je réécrire le AS2 AS3 dans

stop(); 
var currentPosition:Number = bigSlide.slide1._x; 
var startFlag:Boolean = false; 
var finalDestination:Number 
var distanceMoved:Number = 0; 
var distanceToMove:Number; 
var finalSpeed:Number = .3; 
var currentSpeed:Number = 0; 
var dir:Number; 


function menuSlide($target:MovieClip):void { 
    if (startFlag == false) { 
     startFlag = true; 
     finalDestination = $target.x; 
     distanceMoved = 0; 
     distanceToMove = Math.abs(finalDestination - currentPosition); 
     currentSpeed = 0; 
     if (currentPosition <= finalDestination) { 
      dir = -1; 
     } else if (currentPosition > finalDestination) { 
      dir = 1; 
     } 
     addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); 
    } 
} 


function enterFrameHandler($evt:Event):void { 
    currentSpeed = Math.round((distanceToMove - distanceMoved + 1) * finalSpeed); 
    distanceMoved += currentSpeed; 
    bigSlide.x += dir * currentSpeed; 
    if (Math.abs(distanceMoved - distanceToMove) <= 1) { 
     currentPosition = finalPosition; 
     startFlag = false; 
     removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 
    } 
} 

b1.addEventListener(MouseEvent.CLICK, onClick1, false, 0, treu); 
bigSlide.slide1.more.addEventListener(MouseEvent.CLICK, onClickBig, false, 0, treu); 
b2.addEventListener(MouseEvent.CLICK, onClickBig, false, 0, treu); 

function onClick1($evt:MouseEvent):void { 
    menuSlide(bigSlide.slide1); 
} 

function onClickBig($evt:MouseEvent):void { 
    menuSlide(bigSlide.slide2); 
} 
Questions connexes