-- opensrc_2D v.001 - elout de kok - 2003 -- file reads this source from the net, and uses it to visualize global w,h global myimg,myrect --doublebuffer image global sometext global fx, maxfx --some different effects global mypreloader,loadname1,urlname1 on StartMovie w = 600 --(the stage).image.width h = 400 --(the stage).image.height myrect=rect(0,0,w,h) fx=1 maxfx=5 -- create a new offscreen image (member 2) myimg = image(w, h, 32) mymember = new(#bitmap, member 2) mymember.name = "myimage" mymember.image = myimg mymember.regpoint = point(0,0) drawfilledrect(2,0,0,w,h,0,0,0) -- make it black -- create a new offscreen image (member 3) myimg = image(w, h, 32) mymember = new(#bitmap, member 3) mymember.name = "myimage3" mymember.image = myimg mymember.regpoint = point(0,0) drawfilledrect(3,0,0,w,h,0,15,15) -- make it almost black -- my text (member 4) mymember4 = new(#text, member 4) mymember4.name = "myfont" member(4).font = "Arial" member(4).antiAlias=false member(4).fontSize = 10 member(4).color = rgb(255,255,255) member(4).fontStyle = [#plain]--[#bold,#italic] --mytext (member 5) mymember5 = new(#text, member 5) member(5).font = "Verdana" member(5).antiAlias=false member(5).fontSize = 11 member(5).color = rgb(255,255,255) member(5).fontStyle = [#plain]--[#bold,#italic] member(5).directtostage=true --set the text rect member(4).rect=rect(0,0,w,h) member(5).rect=rect(0,0,w,h) -- load the file name loadname1="openscr_2D01.txt" --load a opensrc01.txt local from hard-disk- --readFile(loadname1) --mypreloader=true --load a opensrc01.txt via the net - urlname1="http://www.xs4all.nl/~elout/2003/01/dcr/" myID = preloadNetThing(urlname1&loadname1) mypreloader=false end on stopMovie member(2).erase() --offscreen image member(3).erase() --offscreen image member(4).erase() --font member(5).erase() --font end --main loop on exitFrame me if (mypreloader=true) then checkkeys() if (fx=1)then xx1=random(w) yy1=random(h) xx2=xx1+random(w) yy2=yy1+random(h) if (xx2>w)then xx2=w end if if (yy2>h)then yy2=h end if myrecter1=rect(xx1,yy1,xx2,yy2) xx1=random(w) yy1=random(h) xx2=xx1+random(w) yy2=yy1+random(h) if (xx2>w)then xx2=w end if if (yy2>h)then yy2=h end if myrecter2=rect(xx1,yy1,xx2,yy2) membercopy(2,2,myrecter1,myrecter2,165) membercopy(3,2,myrect,myrect,10) --blackgreen fader end if if (fx=2)then myrecter=rect(4,4,w-4,h-4) membercopy(2,2,myrect,myrecter,205) membercopy(3,2,myrect,myrect,10) --blackgreen fader end if if (fx=3)then myrecter=rect(4,4,w-4,h-4) membercopy(2,2,myrect,myrecter,205) membercopy(3,2,myrect,myrect,4) --blackgreen fader end if if (fx=4)then myrecter=rect(10,10,w-10,h-10) membercopy(2,2,myrecter,myrect,85) membercopy(3,2,myrect,myrect,25) --blackgreen fader end if if (fx=5)then membercopy(3,2,myrect,myrect,5) --blackgreen fader end if member(5).fontSize = random(18)+2 liner=random(247) --asuming there are that many lines in the source member(5).text=member(4).text.line[liner..(liner+12)] member(5).charSpacing = random(15)-5 membercopy(5,2,myrect,myrect,255) --update the stage with offscreen image (the stage).image.copyPixels(member(2).image,myrect,myrect,[#dither: false, #useFastQuads: true]) end if -- check if the file has loaded.. only when loading a net-thing if (mypreloader=false) then if (netDone()=true) then importFileInto (member (4), urlname1&loadname1) -- the file is loaded mypreloader=true end if end if go the frame end on checkkeys if keyPressed("b") then end if if keyPressed(123) then --left arrow key fx=fx-1 if (fx<0)then fx=maxfx end if end if if keyPressed(124) then --right arrow key fx=fx+1 if (fx>maxfx)then fx=0 end if end if if keyPressed(125) then --down end if if keyPressed(126) then --up end if end -- only used for reading local file - uses fileIO.x32 xtra on readFile(mynamerz) -- the file path filePath = the moviePath & mynamerz -- create a new instance of the fileIO Xtra fileIOInstance = xtra("FileIO").new() -- error trap for missing file Xtra if not fileIOInstance.objectP then alert "File IO Xtra missing" exit end if -- open the file for reading fileIOInstance.openFile(filePath, 0) if fileIOInstance.status() = 0 then -- the open sucessful so read the file and then close it fileText = fileIOInstance.readFile() fileIOInstance.closeFile() member(4).text = fileText else -- error message member(4).text = "Error: " & fileIOInstance.error(fileIOInstance.status()) end if end -- drawing api for members/images on drawfilledrect(num,x1,y1,x2,y2,r,g,b) member(num).image.fill(rect(x1,y1,x2,y2),rgb(r,g,b)) end on clrrect(num,r,g,b) member(num).image.fill(myrect,rgb(r,g,b)) end on drawline(num,x1,y1,x2,y2,r,g,b) member(num).image.draw(point(x1,y1), point(x2,y2), [#shapeType:#line, #lineSize:1, #color: rgb(r, g, b)]) end on drawpixel(num,mmx,mmy,r,g,b) member(num).image.setPixel(mmx, mmy, rgb(r, g, b)) end on getrgbpixel(num,mmx,mmy) temprgbpixel=member(num).image.getPixel(mmx, mmy) if (temprgbpixel <> 0)then mypixelrgb=temprgbpixel myr=temprgbpixel.red myg=temprgbpixel.green myb=temprgbpixel.blue end if end on memberduplicate(msource,mdestiny) member(msource).duplicate(mdestiny) end -- source, destiny, source rect,destiny rect, alpha on membercopy(msource,mdestiny,srect,drect,mblend) member(mdestiny).image.copyPixels(member(msource).image,srect,drect, \ [#blendLevel: mblend, #dither: false, #useFastQuads: true]) end -- filters on memberfade(msource,mdestiny,srect,drect,mstap,mstappen) blender=integer((256.0/mstappen.float)*mstap.float) member(mdestiny).image.copyPixels(member(msource).image,srect,drect, \ [#blendLevel: blender, #dither: false, #useFastQuads: true]) end