laugre
Content Type
Profiles
Forums
Store
Blog
Product
Showcase
FAQ
Downloads
Posts posted by laugre
-
-
Hi blitmaskers,
Im developing a full hd dual screen air app that display a slot machine on one screen.
My slot machine get 6 columns, each loading 6 (265p x 265p) pictures.
I use a blitmask (265p x 830p) on each column to spin it.
But once I create the 6 blitmasks I'm loosing 30fps.If I disable bitmap mode my fps stay at 60fps.
But I have to let the spin work while doing something on the other screen in my same app.
Do I have something wrong in my code ?
Or do I reach perf limits ?
Could I improve that ?
Here is my code :
/** * loadPhotos */ public function loadPhotos() : void { var directory : File = File.applicationDirectory.resolvePath(Common.s_presetManager.getPresetStringValue("/records")); pathList = directory.getDirectoryListing(); if (pathList[0].name == ".DS_Store") { pathList.shift(); } var lineItemNB : Array = new Array(); for (i = 0; i < m_vignetteNb; i++) { lineItemNB.push(1); } m_photoLoader = new LoaderMax({name:"photoLoader", onComplete:completeHandler}); for (i = 0; i < pathList.length; i++) { var line : int; if (String(pathList[i].url).charAt(17) == '0') line = int(String(pathList[i].url).substr(18, 1)) - 1; else line = int(String(pathList[i].url).substr(17, 2)) - 1; m_photoLoader.append( new ImageLoader(pathList[i].url, { container : m_columns[lineItemNB[line]], x : 0, y : line * (265+17), width : 265, height : 265 }) ); lineItemNB[line]++; } m_photoLoader.load(); } private function completeHandler(event : LoaderEvent) : void { Common.s_logManager.write("[log] vignettes loaded"); trace("[log] vignettes loaded"); var blitMask1 : BlitMask = new BlitMask(m_columns[0], m_columns[0].x, m_columns[0].y, m_columns[0].width, 829, false, true, 0xffffff, true); var blitMask2 : BlitMask = new BlitMask(m_columns[1], m_columns[1].x, m_columns[1].y, m_columns[1].width, 829, false, true, 0xffffff, true); var blitMask3 : BlitMask = new BlitMask(m_columns[2], m_columns[2].x, m_columns[2].y, m_columns[2].width, 829, false, true, 0xffffff, true); var blitMask4 : BlitMask = new BlitMask(m_columns[3], m_columns[3].x, m_columns[3].y, m_columns[3].width, 829, false, true, 0xffffff, true); var blitMask5 : BlitMask = new BlitMask(m_columns[4], m_columns[4].x, m_columns[4].y, m_columns[4].width, 829, false, true, 0xffffff, true); var blitMask6 : BlitMask = new BlitMask(m_columns[5], m_columns[5].x, m_columns[5].y, m_columns[5].width, 829, false, true, 0xffffff, true); // blitMask1.disableBitmapMode(); // blitMask2.disableBitmapMode(); // blitMask3.disableBitmapMode(); // blitMask4.disableBitmapMode(); // blitMask5.disableBitmapMode(); // blitMask6.disableBitmapMode(); }
-
Hi,
My app has to be an AIR app.
I solved the problem by replacing VideoLoader by FLVPlayback.
But I reduced my app to the simplest app to test it in a fla.
I don't have the time to do more tests with a standalone flash player but feel free to do it.
Here is a zip file containing test project to reproduce the bug.
The 4 flv videos are not inside (about 20Mo) but I can send to you via wetransfer.
Best,
laugre.
-
A bit more information.
In my app (AIR app) when I arrive on the 4 videos screen, I play them :
public function startVideos() : void { trace("video1 time", m_loader1.videoTime); trace("video2 time", m_loader2.videoTime); trace("video3 time", m_loader3.videoTime); trace("video4 time", m_loader4.videoTime); m_loader1.gotoVideoTime(0, true); m_loader2.gotoVideoTime(0, true); m_loader3.gotoVideoTime(0, true); m_loader4.gotoVideoTime(0, true); }
Then when I quit this screen I pause videos and goto 0s head position :
public function stopVideos() : void { m_loader1.pauseVideo(); m_loader2.pauseVideo(); m_loader3.pauseVideo(); m_loader4.pauseVideo(); m_loader1.gotoVideoTime(0); m_loader2.gotoVideoTime(0); m_loader3.gotoVideoTime(0); m_loader4.gotoVideoTime(0); }
When the problem occurs, if I call stopVideos() and then startVideos(),
videos that was blocked stay blocked on first frame and time trace instructions (inside startVideos() function) indicate a strange value 2.067 or 2.033 instead of 0.
What could explain this ?
Best,
laugre.
-
Hi there and thx for support.
Before creating a new topic I found this one http://greensock.com/forums/topic/6567-video-stop-between-loop/
but it's not exactly the same problem.I'm loading 4 different flvs (short time each between 1 and 2 minutes) using a LoaderMax that have to repeat indefinitly (until the user stop it of course).
After a time videos stop repeating one after the other. They are well rewinded to 1st frame but seem to not be played again.
If I wait a very long time (2h repeating) the 4 videos seem to become blocked on 1st frame.
I first tried to declare repeat property as -1 like this :
m_loader1 = new VideoLoader("flv1.flv", {name:"subCol", container:m_interface.subtileScreen, repeat:-1, width:590, height:350, autoPlay:false, visible:true }); m_loader2 = new VideoLoader("flv2.flv", {name:"subJoie", container:m_interface.subtileScreen, repeat:-1, width:590, height:350, autoPlay:false, visible:true }); m_loader3 = new VideoLoader("flv3.flv", {name:"subSur", container:m_interface.subtileScreen, repeat:-1, width:590, height:350, autoPlay:false, visible:true }); m_loader4 = new VideoLoader("flv4.flv", {name:"subTrist", container:m_interface.subtileScreen, repeat:-1, width:590, height:350, autoPlay:false, visible:true });
m_loader = new LoaderMax({name:"subtile"}); m_loader.append(m_loader1); m_loader.append(m_loader2); m_loader.append(m_loader3); m_loader.append(m_loader4); m_loader.load();
I also tried to comment repeat:-1 and handle myself play and complete events for each video like this :
m_loader1.addEventListener(VideoLoader.VIDEO_PLAY, onVideo1Play); m_loader1.addEventListener(VideoLoader.VIDEO_COMPLETE, onVideo1End); private function onVideo1Play(event : LoaderEvent) : void { trace("[log] onVideo1Play " + event.currentTarget.name + " video time " + event.currentTarget.videoTime); } private function onVideo1End(event : LoaderEvent) : void { trace("[log] onVideo1End " + event.currentTarget.name + " video time " + event.currentTarget.videoTime); m_loader1.gotoVideoTime(0, true); }
And same behaviour, onVideo1End is called that rewind video to 0s, but video is not played even if forceplay = true.
However onVideo1Play is called after onVideo1End.I think I have something wrong...
Could you help me please ?Best,
laugre
Blitmask perf on a slot machine
in GSAP (Flash)
Posted
Hi Carl,
Thx for your answer.
The only difference I can see in your demo is that each case is a blitmask and is spinning itself independantly.
In my app, items of a column have to spin together, so my masked area is bigger, 265 x 830p, if I reduce the masked area to 265 x 265, my fps is 60.