Featured FLA
» Author: Bugra Ozden
» Title: Skatalog v9 - product catalog
» Description: Create your product catalog easly and publish on your website or Create your image gallery, documents list, portfolio. Fully XML Driven
» More by Bugra Ozden
Featured Site
» Posted in the Flash Kit Links section
» Title: Creative DW Image Show PRO
» Description: Creative DW Image Show PRO is a Dreamweaver extension which enables the user to create multimedia presentations. It combines the features of the popular Creative DW Image Show with the ability to add professional text effects to slides (similar to After Effects). The product is very customizable: the user can choose the duration of the transition effects, the slide motion start and end position, zoom and panning type for both images and texts.
The Actionscript
The actions in the second frame provide the driving force behind the circle collisions .FLA. I've placed comments along the way to help you understand what's happening.
Comment: ----------------------------------------------
Comment: start move
Comment: ----------------------------------------------
Set Variable: "my_radius" = (GetProperty ("", _width) / 2)
Comment: 'n' is always 'name' of circle.
Set Variable: "my_x" = GetProperty("",_x)
Set Variable: "my_y" = GetProperty("",_y)
Set Variable: "my_n" = GetProperty("",_name)
If (ymov="")
Comment: *********************************
Comment: ----------------------------------------------
Comment: first run through code,
Comment: this will initialize circle
Comment: ----------------------------------------------
Comment: *********************************
Comment: pick a distance:
Set Variable: "ymov" = Random(/:speed)+1
Set Variable: "xmov" = Random(/:speed)+1
Comment:
Comment: pick a direction:
Set Variable: "ysign" = random(2)-1
If (ysign=0)
Set Variable: "ysign" = 1
End If
Set Variable: "xsign" = random(2)-1
If (xsign=0)
Set Variable: "xsign" = 1
End If
Comment: adjust x and y movement
Set Variable: "xmov" = xmov*xsign
Set Variable: "ymov" = ymov*ysign
Comment: ----------------------------------------------
End If
Comment: *********************************
Comment: ----------------------------------------------
Comment: check edges
Comment: ----------------------------------------------
If (my_x<=my_radius+/:speed)
Set Variable: "xmov" = xmov*-1
Set Variable: "my_x" = my_radius+/:speed
End If
If (my_y<=my_radius+/:speed)
Set Variable: "ymov" = ymov*-1
Set Variable: "my_y" = my_radius+/:speed
End If
If (my_x>=/:movie_width-my_radius-/:speed)
Set Variable: "xmov" = xmov*-1
Set Variable: "my_x" = /:movie_width-my_radius-/:speed
End If
If (my_y>=/:movie_height-my_radius-/:speed)
Set Variable: "ymov" = ymov*-1
Set Variable: "my_y" = /:movie_height-my_radius-/:speed
End If
Comment: ----------------------------------------------
Comment: check for collision
Comment: ----------------------------------------------
Set Variable: "n" = 1
Comment: start checking for collisions
Loop While (n<=/:total_circles)
Comment: don't check myself
If (n ne my_n)
Set Variable: "n_x" = GetProperty("../"&n,_x)
Set Variable: "n_y" = GetProperty("../"&n,_y)
Set Variable: "n_radius" = (GetProperty ("../"&n, _width) / 2)
Set Variable: "delta_x" = (my_x+xmov)-(n_x)
Set Variable: "delta_y" = (my_y+ymov)-(n_y)
If ((delta_x * delta_x + delta_y * delta_y) <((my_radius + n_radius) * (my_radius + n_radius)))
Comment: ----------------------------------------------
Comment: handle collisions
Comment: ----------------------------------------------
Comment: I collided with circle 'n'.
Set Variable: "nx" = Eval("../"&n&":xmov")
Set Variable: "ny" = Eval("../"&n&":ymov")
Comment: swap travel values with it.
Set Variable: "tempx" = xmov
Set Variable: "xmov" = nx
Set Variable: "../"&n&":xmov" = tempx
Set Variable: "tempy" = ymov
Set Variable: "ymov" = ny
Set Variable: "../"&n&":ymov" = tempy
Set Variable: "../"&n&":collision" = my_n
Else
End If
End If
Set Variable: "n" = n+1
End Loop
Comment: ----------------------------------------------
Comment: move me
Comment: ----------------------------------------------
Set Property ("", X Position) = my_x + xmov
Set Property ("", Y Position) = my_y + ymov
Comment: ----------------------------------------------
Flashjunkie is a self-professed obsessive addict of life. Due to the highly artistic nature required of an Art Director for an Ad agency, he took up Flash to add some math to his diet.