2

以下のコードから、アプリの表示部分を中断せずにランタイム リスナーを実行するにはどうすればよいですか? 現在、ランタイム リスナーを使用すると表示が遅くなります。参考までに、私はLua/Coronaが初めてで、ここでもstackoverflowが初めてです。

function scene:createScene( event )
        group2 = scrollView.new{ top=topBoundary, bottom=bottomBoundary }

        myImage = display.newImage("imgbg1.png")
        myImage.isVisible =  true
        group2:insert(myImage)

        local yval = 120

        socket,err=socket1.connect("host", port)

        while not err do

            socket:settimeout(1)
            socket:send("runcommand\r\n")

            repeat
              line, err = socket:receive()

              if line then 
                no = no + 1

                -- [[ get only the main properties ]] --
                if no >= 5 then 
                reply = reply .. line
                end
              end
            until err

            t1 = reply
            loadnsave:saveToJson(t1,filename)
            tsw = loadnsave:loadData(filename)

            local i = 0

            for k, v in pairs(tsw) do
                i = i + 1
                print("\n" .. k , v )
                locy = locy + 20
                imgBase[i] = display.newImage("image.png")
                imgBase[i].x = locx
                imgBase[i].y = locy
                group2:insert(imgBase[i])

                sw[i] = swfunc(tsw[k],k,locy,i)

                group2:insert(sw[i])

                locy = locy + 40 + iHeight
            end

            inity = 1
            initw = 1
        end

    Runtime:addEventListener("enterFrame", swlistener)

end

function swlistener(event)
    local reply2 = ""
    repeat
      line2, err2 = socket:receive()

      if line2 then 
        reply2 = reply2 .. line2
      end

    until err2
end
4

2 に答える 2

0

以下の@SatheeshJMのように試しましたが、機能していません

socket,err=socket1.connect("host", port)
socket:setoption("tcp-nodelay",true)

タイムアウトを0.01のような小さい値に設定することで、これに対する解決策を見つけました

socket:settimeout(0.01)

ソケットとディスプレイは正常に動作するようになりました

しかし、swlistener 関数を少し変更する必要があると思います。

于 2012-11-27T07:19:35.590 に答える
0

私があまり間違っていなければ、これはランタイム リスナーとは何の関係もありません。おそらくアプリの速度を低下させているソケット接続です..

100% 確信が持てません (画面がフリーズしますか? もしそうなら、それが問題です) ソケット接続が実際に問題である場合は、次のいずれかを実行できます..

于 2012-11-26T19:15:18.130 に答える