This code replaces the code I posted above. Here are the changes I made. To move a window, touch in the center of a window and move it. To resize a window, touch just inside the corners to move that corner. To increase or decrease the font size, double tap near the top of a window to increase by 2 and near the bottom to decrease by 2. To scroll the text, swipe up or down inside the window but don’t start the swipe at the direct center or just inside the four corners. To view the touch points, slide the > in the upper left corner to show the parameter slider and slide the ’show reacts` parameter on.
displayMode(FULLSCREEN)
supportedOrientations(LANDSCAPE_ANY)
function setup()
parameter.boolean("show rects",false)
str1="Five little monkeys jumping on the bed. One fell off and bumped his head. Mama called the doctor and the doctor said: No more monkeys jumping on the bed! Four little monkeys jumping on the bed. One fell off and bumped his head. Mama called the doctor and the doctor said: No more monkeys jumping on the bed! Three little monkeys jumping on the bed. One fell off and bumped his head. Mama called the doctor and the doctor said: No more monkeys jumping on the bed! Two little monkeys jumping on the bed. One fell off and bumped his head. Mama called the doctor and the doctor said: No more monkeys jumping on the bed! One little monkey jumping on the bed. He fell off and bumped his head. Mama called the doctor and the doctor said: No more monkeys jumping on the bed! Now there's no little monkeys jumping on the bed. They`re all jumping on the sofa instead!"
str2="Twinkle, twinkle, little star, How I wonder what you are. Up above the world so high, Like a diamond in the sky. Twinkle, twinkle, little star, How I wonder what you are! When the blazing sun is gone, When he nothing shines upon. Then you show your little light, Twinkle, twinkle, all the night. Twinkle, twinkle, little star, How I wonder what you are! Then the traveller in the dark Thanks you for your tiny spark. He could not see which way to go, If you did not twinkle so. Twinkle, twinkle, little star, How I wonder what you are! In the dark blue sky you keep, And often through my curtains peep. For you never shut your eye, Till the sun is in the sky. Twinkle, twinkle, little star, How I wonder what you are! As your bright and tiny spark, Lights the traveller in the dark. Though I know not what you are, Twinkle, twinkle, little star. Twinkle, twinkle, little star, How I wonder what you are!"
diff=20
for z=1,4 do
str1=str1..str1 -- concatinate the string to make 2561 words
str2=str2..str2 -- concatinate the string to make 2689 words
end
-- x,y (lower left corner) width, height (window size) fontSize, string to view
tw1=textWindow(50,100,200,600,20,str1)
tw2=textWindow(400,100,300,300,40,str2)
tw3=textWindow(300,500,500,100,15,str1)
tw4=textWindow(850,50,100,500,8,str2)
end
function draw()
background(0)
tw1:draw()
tw2:draw()
tw3:draw()
tw4:draw()
end
function touched(t)
tw1:touched(t)
tw2:touched(t)
tw3:touched(t)
tw4:touched(t)
end
textWindow=class()
function textWindow:init(x,y,w,h,fs,str)
self.x=x
self.y=y
self.w=w
self.h=h
self.fs=fs -- font size
self.dy=0
self.tx=0 -- text width
self.ty=0 -- text heighth
self.topLeft=false
self.topRight=false
self.bottomLeft=false
self.bottomRight=false
self.center=false
self.scroll=false
self.tab={} -- table of words per line
self.words={} -- table of words
for w in string.gmatch(str,"%g+") do
table.insert(self.words,w) -- put each word in a table
end
self:adjust(self)
end
function textWindow:adjust(self)
self.dy=0
self.tab={}
hWord=self.words[1]
fontSize(self.fs)
for z=2,#self.words do
wrd=self.words[z]
self.tx,self.ty=textSize(hWord..wrd)
if self.tx<=self.w then
hWord=hWord.." "..wrd
else
table.insert(self.tab,hWord)
hWord=wrd.." "
end
end
if hWord~="" then
table.insert(self.tab,hWord)
end
end
function textWindow:draw()
textMode(CORNER)
if show_rects then
noStroke()
fill(0, 228, 255, 100)
rect(self.x+self.w/2-20,self.y+self.h/2-20,40,40)
rect(self.x,self.y,40,40)
rect(self.x+self.w-35,self.y,40,40)
rect(self.x+self.w-35,self.y+self.h-40,40,40)
rect(self.x,self.y+self.h-40,40,40)
end
fontSize(self.fs)
noFill()
stroke(255)
strokeWidth(5)
rect(self.x-5,self.y-5,self.w+15,self.h+10)
clip(self.x,self.y,self.w+8,self.h)
fill(255)
for a,b in pairs(self.tab) do
text(b,self.x,self.y+self.h-a*self.ty+self.dy)
end
clip()
end
function textWindow:touched(t)
if t.state==BEGAN then
if t.x>self.x and t.x<self.x+40 and -- top left
t.y>self.y+self.h-40 and t.y<self.y+self.h then
self.topLeft=true
elseif t.x>self.x and t.x<self.x+40 and -- bottom left
t.y>self.y and t.y<self.y+40 then
self.bottomLeft=true
elseif t.x>self.x+self.w-35 and t.x<self.x+self.w and -- top right
t.y>self.y+self.h-40 and t.y<self.y+self.h then
self.topRight=true
elseif t.x>self.x+self.w-35 and t.x<self.x+self.w and -- bottom right
t.y>self.y and t.y<self.y+40 then
self.bottomRight=true
elseif t.x>self.x+self.w/2-40 and t.x<self.x+self.w/2+40 and -- center
t.y>self.y+self.h/2-40 and t.y<self.y+self.h/2+40 then
self.center=true
elseif t.x>self.x and t.x<self.x+self.w and -- inside
t.y>self.y and t.y<self.y+self.h then
self.scroll=true
end
if t.tapCount==2 and self.scroll then
if t.y>self.y+self.h/2 then
self.fs=self.fs+2
else
self.fs=self.fs-2
end
self:adjust(self)
end
end
if t.state==MOVING then
if self.topLeft then
self.x=self.x+t.deltaX
self.w=self.w-t.deltaX
self.h=self.h+t.deltaY
end
if self.bottomLeft then
self.x=self.x+t.deltaX
self.w=self.w-t.deltaX
self.y=self.y+t.deltaY
self.h=self.h-t.deltaY
end
if self.topRight then
self.w=self.w+t.deltaX
self.h=self.h+t.deltaY
end
if self.bottomRight then
self.y=self.y+t.deltaY
self.w=self.w+t.deltaX
self.h=self.h-t.deltaY
end
if self.center then
self.x=self.x+t.deltaX
self.y=self.y+t.deltaY
end
if self.scroll then
self.dy=self.dy+t.deltaY
if self.dy<0 then
self.dy=0
end
end
end
if t.state==ENDED then
if self.topLeft or self.topRight or self.bottomLeft or self.bottomRight then
self:adjust(self)
end
self.scroll=false
self.topLeft=false
self.topRight=false
self.bottomLeft=false
self.bottomRight=false
self.center=false
self.began=false
end
end