Total Pageviews

Tuesday, March 18, 2014

ចុះចំណែក function របស់ Display មានអ្វីខ្លះ?


១. Display.capture()
ហ្វាំងសិនមួយនេះមានតួនាទីដូចជា display.save() ភាពខុសគ្នារបស់វាគឺ នឹង Returns a display object ជំនួសការ Save ៕ វាអាចបន្ថែម Option ក្នុងការ Save the capture ទៅ Photo Lib របស់ Devices ដែលត្រូវ ធ្វើវានៅក្នុងការហៅហ្វាំងសិន។
Display.capture() អាចជា Hybrid នៅចន្លោះ display.save() & display.captureScreen()

ចំណាំះ
Adroid: នៅពេលដែល App របស់អ្នកត្រូវ Suspended ពេលនោះ Android OS លុបចេញគ្រប់ទាំង OpenGL textures ចេញពី Memory។ នៅពេលដែល App ត្រូវ Resumed ពេលនោះ Corona នឹង Load គ្រប់ទាំងរូបភាព ប៉ុន្តែ Capture image មិនមាននៅក្នុង Memory ទៀតទេ។ ដំណោះស្រាយមានដូចនេះ
១. Save the returned capture image to file via the display.save() function
២. Display the image saved to file via display.newImageRect() ដោយប្រើប្រាស់ Capture Object’s Bounds

សូមប្រយ័ត្នះ មិនអាចប្រើ ហ្វាំងសិន display.save() នៅក្នុង Android application Suspend and applicationExit events ពីព្រោះមិនមាន OpenGL texture នៅក្នុង Memory។
សំរាប់ Android ត្រូវការដាក់ Permission នៅក្នុង build.setting ដោយបន្ថែមកូដដូចខាងក្រោម
settings =
{
    android =
    {
        usesPermissions =
        {
            "android.permission.WRITE_EXTERNAL_STORAGE",
        },
    },
}

សំរាប់ Mac
ដោយ save screen capture ជាហ្វាល JPEG ទៅកាន់ Current User’s Desktop
សំរាប់ Windows
ដោយ save screen capture ជាហ្វាល png ទៅកាន់ My Pictures\Corona Simulator directory
ដាក់ Capture on Launch
ការប្រើប្រាស់មួយនេះសំរាប់ Display Object នៅលើ Application (នៅពេល main.lua នឹងដំណើរការនៅពេលដែលចាប់ផ្តើម App) ដូចនេះត្រូវប្រើ display.capture() នៅចន្លោះ timer.performWithDelay ។ សំរាប់ delay ត្រូវប្រើត្រឹមតែ 100 វិនាទី
សូមមើលកូដះ
local myObject1 = display.newRect( 50, 50, 100, 150 )

local function captureWithDelay()
    local capture = display.capture( myObject1 )
end

timer.performWithDelay( 100, captureWithDelay )

Syntax: display.capture (displayObject, options)

displayObject (តំរូវការ) វាជា Variable ដែលជា References ទៅកាន់ Display object/ group to save

No comments:

Post a Comment