Sprite:setBlendMode
Available since: Gideros 2011.6
Class: Sprite
Description
Sets the blend mode of the sprite.
Sprite:setBlendMode(blendMode or src,dst)
This method can be called with 1 or 2 parameters.
If one parameter is passed it must be one of the following blending modes:
- Sprite.ALPHA = "alpha"
 - Sprite.NO_ALPHA = "noAlpha"
 - Sprite.ADD = "add"
 - Sprite.MULTIPLY = "multiply"
 - Sprite.SCREEN = "screen"
 
If a Sprite object doesn't set any blending mode, it takes the blending mode from its parent sprite.
Note: the following two lines are completely the same:
sprite:setBlendMode("add")
sprite:setBlendMode(Sprite.ADD)
It's a matter of taste which one to choose.
If two parameters are passed to this method, then a source and destination blend can be set (in that order) and each takes the values:
- Sprite.ZERO = "zero"
 - Sprite.ONE = "one"
 - Sprite.SRC_COLOR = "srcColor"
 - Sprite.ONE_MINUS_SRC_COLOR = "oneMinusSrcColor"
 - Sprite.DST_COLOR = "dstColor"
 - Sprite.ONE_MINUS_DST_COLOR = "oneMinusDstColor"
 - Sprite.SRC_ALPHA = "srcAlpha"
 - Sprite.ONE_MINUS_SRC_ALPHA = "oneMinusSrcAlpha"
 - Sprite.DST_ALPHA = "dstAlpha"
 - Sprite.ONE_MINUS_DST_ALPHA = "oneMinusDstAlpha"
 - Sprite.SRC_ALPHA_SATURATE = "srcAlphaSaturate"
 
Parameters
blendMode or src: (String) if one parameter is used, this is the blend mode. If two parameters are used this is the source blend specification
dst: (String) destination blend mode optional
Examples
All blend modes
for x = 1, 11 do
	for y = 1, 11 do
		local top = Pixel.new(topTex, s, s)
		local btm = Pixel.new(btmTex, s, s)
		stage:addChild(btm)
		btm:addChild(top)
		btm:setBlendMode(x, y)
		btm:setPosition(lh + s * (x-1), lh + s * (y-1))
	end
end
Spot light
note: you have to provide your own asset
--[[
    Script:  spotlight
	Description: Show how to create an animated spot light of the Gideros logo
	Author:  Michael Hartlef
	Contact: mike@fantomgl.com
--]]
-- Load the mask images (can be a gradient or a plain image)
--local mask = Bitmap.new(Texture.new("images/maskCircle2.png")) -- semi-transparent
local mask = Bitmap.new(Texture.new("images/carmo.png")) -- plain image
-- Set its anchor point in the center
mask:setAnchorPoint(0.5, 0.5)
-- Scale it up by a factor of 3
mask:setScale(3)
-- change alpha
mask:setAlpha(2)
-- Position the mask in the middle of the simulator
mask:setPosition(application:getLogicalHeight()/2,application:getLogicalWidth()/2)
-- Set its speed and direction values
mask.speedX = 2
mask.speedY = 1
mask.dirX=1
mask.dirY=1
--Add the mask to the stage
stage:addChild(mask)
--Now load the logo image
local logo = Bitmap.new(Texture.new("images/carmo.png"))
-- Set its anchor point to the center
logo:setAnchorPoint(0.5, 0.5)
-- Scale it down to a half
logo:setScale(10)
-- Position the logo in the middle of the simulator
logo:setPosition(application:getLogicalHeight()/2,application:getLogicalWidth()/2)
--Now set the blend mode
logo:setBlendMode(Sprite.MULTIPLY)
-- Add the logo to the stage
stage:addChild(logo)
-- Set the background color of the stage to black (you can experiment)
stage:setBackgroundColor(0.07, 0.07, 0.07) -- r, g, b
-- Define the onEnterFrame event function. This deals with the positioning of the mask
function onEnterFrame(event)
	-- Get the position of the maks
	local x, y = mask:getPosition()
	-- Calculate the new position
	x += (mask.speedX * mask.dirX)
	y += (mask.speedY * mask.dirY)
	-- Check if the mask reaches the edges of the canvas and then mirror its movement.
	if x < 0 then mask.dirX = 1 end
	if x > application:getLogicalHeight() then mask.dirX = -1 end
	if y < 0 then mask.dirY = 1 end
	if y > application:getLogicalWidth() then mask.dirY = -1 end
	-- Set the new position of the mask
	mask:setPosition(x,y)
end
-- Register an enterFrame event handler function
stage:addEventListener(Event.ENTER_FRAME, onEnterFrame)
- Sprite:addChild
 - Sprite:addChildAt
 - Sprite:clearBlendMode
 - Sprite:clone
 - Sprite:contains
 - Sprite:get
 - Sprite:getAlpha
 - Sprite:getAnchorPoint
 - Sprite:getAnchorPosition
 - Sprite:getBounds
 - Sprite:getChildAt
 - Sprite:getChildIndex
 - Sprite:getChildrenAtPoint
 - Sprite:getClip
 - Sprite:getColorTransform
 - Sprite:getDrawCount
 - Sprite:getHeight
 - Sprite:getLayoutConstraints
 - Sprite:getLayoutInfo
 - Sprite:getLayoutParameters
 - Sprite:getMatrix
 - Sprite:getNumChildren
 - Sprite:getParent
 - Sprite:getPosition
 - Sprite:getRotation
 - Sprite:getRotationX
 - Sprite:getRotationY
 - Sprite:getScale
 - Sprite:getScaleX
 - Sprite:getScaleY
 - Sprite:getScaleZ
 - Sprite:getSize
 - Sprite:getSkew
 - Sprite:getSkewX
 - Sprite:getSkewY
 - Sprite:getWidth
 - Sprite:getX
 - Sprite:getY
 - Sprite:getZ
 - Sprite:globalToLocal
 - Sprite:hitTestPoint
 - Sprite:isVisible
 - Sprite:localToGlobal
 - Sprite:redrawEffects
 - Sprite:removeChild
 - Sprite:removeChildAt
 - Sprite:removeFromParent
 - Sprite:set
 - Sprite:setAlpha
 - Sprite:setAnchorPoint
 - Sprite:setAnchorPosition
 - Sprite:setBlendMode
 - Sprite:setClip
 - Sprite:setColorTransform
 - Sprite:setEffectConstant
 - Sprite:setEffectStack
 - Sprite:setGhosts
 - Sprite:setLayoutConstraints
 - Sprite:setLayoutParameters
 - Sprite:setMatrix
 - Sprite:setPosition
 - Sprite:setRotation
 - Sprite:setRotationX
 - Sprite:setRotationY
 - Sprite:setScale
 - Sprite:setScaleX
 - Sprite:setScaleY
 - Sprite:setScaleZ
 - Sprite:setShader
 - Sprite:setShaderConstant
 - Sprite:setSkew
 - Sprite:setSkewX
 - Sprite:setSkewY
 - Sprite:setStencilOperation
 - Sprite:setStopEventPropagation
 - Sprite:setVisible
 - Sprite:setX
 - Sprite:setY
 - Sprite:setZ
 - Sprite:spriteToLocal
 - Sprite:swapChildren
 - Sprite:swapChildrenAt
 
- Sprite.ADD
 - Sprite.ALPHA
 - Sprite.LAYOUT ANCHOR CENTER
 - Sprite.LAYOUT ANCHOR EAST
 - Sprite.LAYOUT ANCHOR NORTH
 - Sprite.LAYOUT ANCHOR NORTHEAST
 - Sprite.LAYOUT ANCHOR NORTHWEST
 - Sprite.LAYOUT ANCHOR SOUTH
 - Sprite.LAYOUT ANCHOR SOUTHEAST
 - Sprite.LAYOUT ANCHOR SOUTHWEST
 - Sprite.LAYOUT ANCHOR WEST
 - Sprite.LAYOUT FILL BOTH
 - Sprite.LAYOUT FILL HORIZONTAL
 - Sprite.LAYOUT FILL NONE
 - Sprite.LAYOUT FILL VERTICAL
 - Sprite.MULTIPLY
 - Sprite.NO ALPHA
 - Sprite.SCREEN
 - Sprite.new
 
- Event.ADDED_TO_STAGE
 - Event.ENTER_FRAME
 - Event.KEY_CHAR
 - Event.KEY_DOWN
 - Event.KEY_UP
 - Event.LAYOUT_RESIZED
 - Event.MOUSE_DOWN
 - Event.MOUSE_ENTER
 - Event.MOUSE_HOVER
 - Event.MOUSE_LEAVE
 - Event.MOUSE_MOVE
 - Event.MOUSE_UP
 - Event.MOUSE_WHEEL
 - Event.REMOVED_FROM_STAGE
 - Event.TOUCHES_BEGIN
 - Event.TOUCHES_CANCEL
 - Event.TOUCHES_END
 - Event.TOUCHES_MOVE