Huli's Blog

Learning by sharing

Posts match “ Corona ” tag:

Corona SDK筆記

| Comments

用這篇筆記一下在用Corona的時候找到的一些好的網站
不然分頁越開越多

Tutorial: Creative Effects Using Blend Modes
http://coronalabs.com/blog/2012/10/30/creative-effects-using-blend-modes/
這篇有簡單說明一下normal、screen、add、multiply這幾個blend modes的原理以及效果為何
以前在After effects上面我都只能亂猜效果是什麼XDD

Tutorial: How to Drag Objects
http://coronalabs.com/blog/2011/09/24/tutorial-how-to-drag-objects/
教你怎麼實現拖曳物件

Tutorial: Methods for Positioning Text
http://coronalabs.com/blog/2014/02/11/tutorial-methods-for-positioning-text/
跟文字有關的一些設置,還滿實用的

Corona SDK Tutorial: Passing Data Between Scenes
http://leetr.com/120/corona-sdk-tutorial-passing-data-between-scenes/
在scene之間傳遞資料

ED's IT Notes
http://edscb.blogspot.tw/search/label/Corona%20SDK
有滿多跟corona有關的文章

缓动函数速查表
http://easings.net/zh-cn
在用transtion的時候,可以提供一個參數指定動畫要怎麼動
這邊列出很多種移動方式

Forward declaration
http://forums.coronalabs.com/topic/39106-forward-declaration-help/
跟forward declaration有關的一篇討論

Tutorial: Using Custom Fonts
http://coronalabs.com/blog/2013/01/16/faq-wednesday-custom-fonts/
教你如何使用自定的字體

[Guide] Finding/Solving Memory Leaks
http://forums.coronalabs.com/topic/22091-guide-findingsolving-memory-leaks/
找出memory leaks的問題並且解決

[Corona] event互相干擾

| Comments

比如我現在有一張背景圖叫做bg
有一個畫出來的矩形叫做rect
當我點擊那個矩形的時候,我想像中的情況是:只有那個矩形的tap事件會發生
但實際上的情況是:bg的tap事件也會被觸發

測試code(部分):

function scene:createScene( event )
    local group = self.view    
    local function bg_tap()
        print("bg tap!!")
    end
    local function rect_tap()
        print("rect tap!!")
    end
    local bg = display.newRoundedRect( screenW*0.5, screenW*0.5, 1000, 1000, 10 )
    bg:setFillColor( black )
    bg:addEventListener( "tap", bg_tap )
    group:insert(bg)

    local rect = display.newRoundedRect( screenW*0.5, screenW*0.5, 100, 100, 10 )
    rect:addEventListener( "tap", rect_tap )
    group:insert(rect)
end

點我點rect的時候
看到的訊息是:

2014-03-20 15:41:11.789 Corona Simulator[2807:507] rect tap!!
2014-03-20 15:41:11.789 Corona Simulator[2807:507] bg tap!!

也就是說兩個事件都會被執行
那該怎麼辦呢?
只要在rect_tap這個事件加上一行return true就好

--原本的

    local function rect_tap()
        print("rect tap!!")
    end
--修改過後

    local function rect_tap()
        print("rect tap!!")
        return true
    end

這樣子就只會執行到第一個事件,而不會一直傳遞下去

參考資料:
Why touch event of bacground through objects above?
http://forums.coronalabs.com/topic/39703-why-touch-event-of-bacground-through-objects-above/