need help for a transition with event

hello,

i have a problem to make a transition in two parts with the event.x. my transition work ( all my characters are basics shapes if you want test my code) but my character jump to his initial position at the end and i don’t know how i can cancel this.

thanks for your help.

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)     local xend = event.x     local yend = event.y                                   if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( 0,0,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xmiddle                         character.y = ymiddle                         character.yScale = 0.5                         character.xScale = 0.5                 end           local function removal1(character)                character:removeSelf()                spawn()                      end               local transitionspecial = transition.to(             character, { time=500, x=xmiddle, y=ymiddle,             yScale=2, xScale=2, onComplete=removal1,             transition=easing.inBounce })         local transitionspecial2= transition.to(             character, { time=550, x=xend, y=yend, yScale=0.5, xScale=0.5,             transition=easing.outElastic,             onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end             })    end background:addEventListener("tap", myTapListener )

my transitionend don’t work properly …

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)     local xend = event.x     local yend = event.y                               if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 1                         character.xScale = 1                 end    local function spawn2()      local transitionend = transition.to(             character, { time=1000, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })                                         end           local function removal1(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                spawn2()                     end       local transitionbegin= transition.to(             character, { time=250, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             -- transition=easing.outElastic,             onComplete=removal1             })           local transitionend = transition.to(             character, { time=10, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })           end background:addEventListener("tap", myTapListener )

like this ?

but it’s still not perfect

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)                 xend = event.x                 yend = event.y                 if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 1                         character.xScale = 1                 end    local function spawn2()      local transitionend = transition.to(             character, { time=1000, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end              })                        end           local function removal1(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                spawn2()                     end       local transitionbegin= transition.to(             character, { time=250, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             -- transition=easing.outElastic,             onComplete=removal1             })           local transitionend = transition.to(             character, { time=10, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })           end background:addEventListener("tap", myTapListener )

YESSSSSS !!! it’s work perfectly …thanks

now an another question is how that transition should be completed before the event is taken into account?

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)                 xend = event.x                 yend = event.y                 if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 2                         character.xScale = 2                 end    local function transitionend()      transition.to(             character, { time=160, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end             })                        end           local function removal(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                transitionend()                     end       local transitionbegin= transition.to(             character, { time=20, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             transition=easing.outElastic,             onComplete=removal             })            end background:addEventListener("tap", myTapListener )

my transitionend don’t work properly …

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)     local xend = event.x     local yend = event.y                               if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 1                         character.xScale = 1                 end    local function spawn2()      local transitionend = transition.to(             character, { time=1000, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })                                         end           local function removal1(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                spawn2()                     end       local transitionbegin= transition.to(             character, { time=250, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             -- transition=easing.outElastic,             onComplete=removal1             })           local transitionend = transition.to(             character, { time=10, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })           end background:addEventListener("tap", myTapListener )

like this ?

but it’s still not perfect

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)                 xend = event.x                 yend = event.y                 if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 1                         character.xScale = 1                 end    local function spawn2()      local transitionend = transition.to(             character, { time=1000, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end              })                        end           local function removal1(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                spawn2()                     end       local transitionbegin= transition.to(             character, { time=250, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             -- transition=easing.outElastic,             onComplete=removal1             })           local transitionend = transition.to(             character, { time=10, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end, spawn2                })           end background:addEventListener("tap", myTapListener )

YESSSSSS !!! it’s work perfectly …thanks

now an another question is how that transition should be completed before the event is taken into account?

local background=display.newRect( 0,200,4000,4000 ) local xbegin = 0 local ybegin = 200 local character = display.newCircle( 0,0,25 ) local paint = {0, 0, 0} character.fill=paint character.yScale = 1 character.xScale = 1 character.x = xbegin character.y = ybegin local function myTapListener(event)                 xend = event.x                 yend = event.y                 if (xend == xbegin)                 then                 xmiddle = xend                 else                 xmiddle = (xend-xbegin)\*0.5+xbegin                   end                                     if (yend == ybegin)                   then                   local ymiddle = yend                   else                   ymiddle = (yend-ybegin)\*0.5+ybegin                                    end  local function spawn()                 character = display.newCircle( xbegin,ybegin,25 )                         paint = {0, 0, 0}                         character.fill=paint                         character.x = xbegin                         character.y = ybegin                         character.yScale = 2                         character.xScale = 2                 end    local function transitionend()      transition.to(             character, { time=160, x=xend, y=yend,             yScale=0.5, xScale=0.5, transition=easing.inBounce, onComplete=             function(obj)             character.x = obj.x             character.y = obj.y               end             })                        end           local function removal(character)                character:removeSelf()                 xbegin=xmiddle                 ybegin=ymiddle                 print( ybegin, ymiddle)                spawn()                transitionend()                     end       local transitionbegin= transition.to(             character, { time=20, x=xmiddle, y=ymiddle, yScale=2, xScale=2,             transition=easing.outElastic,             onComplete=removal             })            end background:addEventListener("tap", myTapListener )