ActionScript 3.0 :: Dynamic BitmapData / Redraw / Invalidation?
Jan 12, 2011
I am working on a character terminal emulator. Glyphs are 8x8, 1bit raw bitmaps There are 256 glyphs in the palette. A character buffer is a grid of single bytes, referencing the various glyphs in the palette 256 glyph palette.Essentially a character buffer is a big blocky bitmap, only instead of pixels it has glyphs.Rendering the character buffer is a rather quick, self-contained job in theory. The memory required is very low and the execution time is similar to a hardware blit.
It is redundant to have a 'back buffer', i.e. a BitmapData to store a rendering of the character buffer. it's too costly in memory and way overkill for the complexity of what is being rendered.I want to know if it is possible to feed data to the video memory similar to the way it is done with SampleDataEvents. I do not want to store a redundant BitmapData object since some of these character buffers are huge and rarely need to be rendered all at once. They only need to be 'invalidated', i.e. they only need to update small portions at a time as they are 'exposed'.
I have searched high and low and read the manual a million times. The closest thing I could find were the stage.invalidate() and RENDER events, but they don't seem to give me a rectangular area to feed data to. I also tried extending Bitmap, but could not figure out how to override it's default behaviour of reading pixels from a BitmapData.An example of what I'm doing can be found when using GTK's DrawingArea widget and it's 'expose' events, used for very fast rendering.
View 2 Replies
Similar Posts:
Mar 24, 2011
I'm having a problem that involves scrollRect and getBounds. In short, getBounds is reporting an old value not accounting for scrollRect changes during that frame. Example:
ActionScript Code:
var shape:Shape = new Shape();
shape.graphics.beginFill(0);
[code].....
View 3 Replies
Jun 23, 2010
I am new in flex and recently read about Validation and Invalidation in components.
View 2 Replies
Oct 20, 2011
Create a tab navigator (or viewstack, whatever) and add a couple tabs. On your tab add a show event handler. Inside the event handler call invalidateProperties() and invalidateDisplayList() on one of the children of your tab. Put a break point on the childs commitProperties() and updateDisplayList(). You'll notice that the updateDisplayList() gets called before commitProperties() which results in incorrect behaviour.
I noticed this problem when setting a DataGrid's dataprovider from inside the show handler. Setting the dataProvider causes the grid to invalidate both properties and displayList, updateDisplayList() will get called first, then commitProperties() which will result in the grid not updating the rows. It appears the root of the problem is that the show event gets dispatched from within LayoutManagers validateDisplayList() loop, so invalidating a child object from within the show handler results in its updateDisplayList() getting called immediately.
[Code]....
View 1 Replies
Oct 20, 2007
Does anyone know if it is possible to convert dynamic text into bitmapData, the same way you can convert jpgs/pngs to bitmapData?
View 14 Replies
Jun 1, 2011
I have the following code
///Get BitmapData from library in SWC
var ClassReference:Class = getDefinitionByName(products[i].producticon+"Data") as Class;
// Create new BitmapData Instance From it
[Code]....
I get null in the trace. How do I make a dynamic class that I can refer to for this bitmap similar to how your reference a class from and embedded media?
View 1 Replies
Sep 11, 2007
I'm creating a dynamic image gallery that resizes the images to fit the gallery size, and then smooths them out.I feel like I'm super close to getting it to work perfectly. The image smoothing always works, but the resizing is kind of iffy. The first image displayed will resize just fine, but when you view any others they're all distorted or squashed. What's strange is that I've traced out the resized image dimensions and they're exactly what they should be, but the images are still not resizing correctly.
Here's my code! I only included the parts of it that are really relevant, but let me know if you guys want to see all of it. It's a combination of a few tutorials that I found. I may be able to provide a live example, but it's for work so I'm not sure how the nondisclosure agreement would affect that.
Code:
var thisWidth:Number;
var thisHeight:Number;
var maximumHeight:Number;//height to which movieclip to be resized
[code].....
View 2 Replies
Dec 21, 2009
I'm trying to do something a little crazy from what it seems here, I have a carousel that I am modifying to have thumbnail images added to dynamically from an XML file. Now me being the practical persona I am I did NOT want to make little images for each picture in the gallery so I used a neat little class from a blog called soulwire
[URL]
the class lets me use the bitmap properties of flash to fit a copy of my image into the thumbnail are for my carousel Icons, later I will use the same info to click and show the large image for each of these icons.
My problem is that I can get it to work but only the last generated MovieClip gets an image, and it's not even the correct one. it gets image #2 in clip #5.
It seems as though my Event.COMPLETE for my loader is not firing for each image, if it is I'm not sure why I'm just getting the image in 1 icon.
here is my Code:
Code: Select all// Import the required classes
import uk.soulwire.utils.display.Alignment;
import uk.soulwire.utils.display.DisplayUtils;
[Code].....
View 1 Replies
Sep 9, 2010
Adobe help document said, "When a component calls an invalidation method, it signals to Flex that the component must be updated. When multiple components call invalidation methods, Flex coordinates updates so that they all occur together during the next screen update."
[Code]...
View 1 Replies
Jan 31, 2007
I'm using Flash 8, with this code in the first frame:
import flash.display.BitmapData;
rissa._x=Stage.width/2;
rissa._y=Stage.height/2;[code].....
When I publish the file, I'm getting the following error message in the Output panel:
**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 7: The class or interface 'BitmapData.loadBitmap' could not be loaded.
var plaid:BitmapData.loadBitmap("plaid");
Total ActionScript Errors: 1 Reported Errors: 1
View 8 Replies
Oct 14, 2009
I am trying to use the reflect class from "http://pixelfumes.blogspot.com/2007/03/reflection-class-v3-with-source .html" but I keep getting this error:
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData()
at Reflect()
at Site_fla::GalleryPage_29/loadThumbs()
at Site_fla::GalleryPage_29/sortXML()
[Code]...
btw, first I used assigned thumbContainer as the mc argument (outside the loadThumbs() function) and it worked but not exactly what I wanted... because I thought it is supposed to update when the movieclip is animated but it actually didn't... when I use a scroller, only the thumbs that are first loaded to the stage get the reflection..
View 10 Replies
Dec 29, 2011
I've been using BitmapData.copyPixels() to draw graphics onto a canvas (Bitmap).I need to rotate the resulting graphics without the use of draw() because it's vastly slower.How can I rotate the target graphic? I'm assuming that there might be a formula or library that I can use which will first reorganize the pixels that make up a graphic based on an origin (point) and radians.I'm pretty certain that I'm not capable of creating such logic, so if there are any known libraries that do this, that would be awesome.I'd like to achieve something similar to XNA's SpriteBatch.Draw() method, which accepts rotation as its 5th argument.
View 3 Replies
Sep 1, 2011
how to use the bitmapData collision method. Now I'm trying to figure out if there is a way to see at what angle or coordinate of the bitmapData the collision happens? I need it in order to figure the accurate bounce angle after the collision occurs.
View 2 Replies
Jul 15, 2009
I'm currently working on a flash game and I need to know how to addChild a BitmapData or draw a BitmapData to screen. If I can't than how can I give a DisplayObject my BitmapData?
View 2 Replies
Dec 22, 2011
I've made a mobile version of my software, with low-res images and such, and I can now fully buffer all my content (including a 360 frame animation which is buffered to memory). Problem is, that everytime I update the view, more memory is used.When I write image = new BitmapData();, does it store the previously created BitmapData's in memory? Do I have to flush the memory somehow before I draw my second picture in BitmapData?Example:
ActionScript Code:
// In this example I draw using the same bitmapData several times, also
//overwriting the first image. Do I have to somehow delete the data first, to
[code].....
View 1 Replies
Nov 9, 2009
I am building a scene which consists of 1 main mc containing all the elements in the scene. Inside this mc some of the layers are pushed back in Z space to create a parallax effect and on the main timeline the scene mc scrolls in relation to
the mouse position (much like this ) the scene mc is 5953px by 1716px and all the mcs contained inside consist of line drawn vector illustrations imported from illustrator. My problem is that when the scene is scrolling, every so often there is a delay were the scrolling slows down. It eventually catches up with itself causing it to jerk back to its original speed. When I test the movie and turn on redraw regions I notice that flash is having trouble redrawing some of the mcs.
I have tried optimising my mcs, turning cache as bitmap on the static ones and even replacing some of the static ones with bitmap versions but none of these seem to solve the problem. I was wondering if there is a solution to this or any other steps I can take to ease up on the redraw Also I am having a problem with the mcs breaking up as the scene scrolls, is there a way I can easily apply an anti alias to them?
View 1 Replies
Jan 16, 2012
Im pretty sure Im not going about this the right way... but anyways If you move to the left or right, the front triangle is supposed to have its points redrawn to locked positions inside the player, but for some reason it is leaving artifacts and Im sure its some redundancy in my script that I don't see...here is the script executing the redraw...
Actionscript Code:
function reDrawFront() { var temp=frontLockright.localToGlobal(new Point(0,0)); var temp2=frontLockleft.localToGlobal(new Point(0,0));
[code]....
View 2 Replies
Apr 7, 2010
I want my sprite to redraw when the information in my comboBox is changed but I cant figure out how to do it. I've tried a variety of things with no luck so I've deleted my attempts and below is my code how I want it to work with the exception that how it is now just draws the sprite on top of the other one instead of replacing it (or resizing it??).
import fl.data.DataProvider; import fl.events.ComponentEvent;
var items:Array = [ {label:"Select your Waterway"},
{label:"Klamath at Orleans", data:klamath_orleans},
{label:"Scott at Fort Jones", data:scott_fort_jones},
{label:"Redwood Creek", data:"redwood_creek_hwy299"},
[Code] .....
View 1 Replies
Dec 7, 2011
Is there a way to instantaneously force a redraw? I am using a Timer and I want it to update the screen between frames.
View 3 Replies
Jan 10, 2011
I have an app w/ a login screen. When the user hits "enter", the state changes to "login" & a child component is triggered to load (though the child stays invisible at the moment). The child contains many functions that the user needs upon logging in (ie their screenname & settings are retrieved from a database). The following is included in 'Parent':
<local:comp id="localComp" includeIn="login" includeInLayout="false" visible="false"/>
<mx:Button label="login" click="currentState='login'"/>
<mx:Button label="logout" click="currentState='Default'"/>
My problem is when a user logs out (state changes to 'Default') & then logs back in (state changes back to 'login') the child doesn't get "triggered" again & the functions w/in the child don't reload. Is there a way to force my child to refresh?
Note: While it would be easier to just move the child's functions to the parent it is complex...I moved these functions to the child to make it easier to follow
UPDATE: I even tried adding an "exitState" to my state:
<s:State name="login" exitState="removeElement(localComp)" />
This doesn't work either, as I get an error: "RangeError: Index 0 is out of range."
UPDATE: Even though you are allowed to call a child's function from a parent, my problem is that the child needs to be "created" in order to not show errors. It makes no sense to me why the flex team would make something like removing & adding children so complicated.
View 3 Replies
Jan 8, 2012
My question is: how do I redraw a shape using only code? Short comment on the task itself. I've an eventListener, which grabs clicks on stage and stage resizes. Both execute the same function - redrawEvents(evt:Event). The stage contains a number of blocks, which represent certain events. On each redraw these blocks are repositioned, and also lines (which represent connections between events) are drawn.
Any way to reposition all the blocks, but I got stuck on redrawing lines. I'm using a single shape to hold all the lines, because lines, unlike blocks, are not interactive. Since the whole point of the application is creating sets of interconnected events, I have to modify this shape every time a new block is created, which also calls redraw function. Here's the code I use to modify the shape
stage.addEventListener(MouseEvent.CLICK,redrawEvents);
function redrawEvents (evt:Event) {
var lines:Shape = new Shape();
lines.graphics.lineStyle(2, 0xFFFFFF, .75);
lines.graphics.clear();
for (var k:int = 0; k < connections.length; k++){
lines.graphics.moveTo(eventList[connections[k][0]].x + 50, eventList[connections[k][0]].y + 50);
lines.graphics.lineTo(eventList[connections[k][1]].x + 50, eventList[connections[k][1]].y + 50);
} addChild(lines); }
However, whenever the shape is modified, it still leaves the 'older versions' of itself on screen, and i don't want that. I tried to create and delete instances, various type conversions.
View 2 Replies
Aug 16, 2009
i am doing a project to learn as3 as it's fun to do and useful for creating mockups in (interaction designer).
The project consists of a banner swf containing generated stuff and another swf which is the main project. In the banner i have mouseover textfields with an explaining text that is shown when moving the mouse over movieClips. The problem is that when a textfield overlaps the main swf (they are stacked with css, z-index), the main swf doesn't redraw the previously covered area resulting in a white patch where the textfield was shown.
One way of doing it i guess would be to on each MOUSE_OUT function, where the textfield is removed from stage by removeChild(textThing), also connect to the main swf by localConnect() and somehow force it to redraw.
View 1 Replies
Dec 27, 2009
I've been trying to get the hang of working with bitmaps. I can redraw them using draw(), and after some trouble managed to redraw an externally loaded file using copyPixel(). What I can't do is redraw several images loading from XML.[code]...
View 3 Replies
May 11, 2010
I have two columns: the left one is a Canvas containing an mx:Tree and the right one is a Canvas containing a Canvas (to allow for scrolling) of some custom Sprites that go along with the tree nodes on the left. I made the right Canvas scrollable (horizontal and vertical) and I want the vertical scroll to also scroll the left Canvas so that the tree nodes line up with their representations on the right. The scrolling portion works fine and when I embed with wmode="window" there are no problems. Unfortunately, the customer requires dynamic HTML to overlap the Flash at times and when using wmode="opaque" or "transparent", there are issues. The scrolling still works, per se, but Flash does not seem to redraw either Canvas appropriately. The Canvases become out of sync and artifacts often remain on the right side.I catch a scroll event on the right column and update the scroll position on the left column like so:
public function onTimelineScroll(scrollEvent:ScrollEvent):void {
leftColumn.verticalScrollPosition = rightColumn.verticalScrollPosition;
}
[code].....
View 1 Replies
May 11, 2010
I have a problem with redrawing in flex 4. I have a spark titleWindow, and if i drag it faster, it looks like it's mask is one frame late after the component. it's easily visible with 1pixel thin border, because it becomes invisible even with slower movement.
You can try it here (what is not my page, but it's easier to show you here than uploading example):[URL]..
If you move in direction up, you see disappearing top border. in another directions it's not that sensitive as it has wide shadow, and it's not very visible on shadow. On my computer i see it on every spark TitleWindow i have found on google, although it's much less visible with less contrast skins, without borders or with shadows.
View 2 Replies
Mar 23, 2011
Suppose I have a component and want to change it's focus color at runtime. Here's an example for you (I've excluded any buttons and such to prevent component from losing it's focus, cause in that case it changes it's color perfectly):
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init()">
<mx:Script><![CDATA[
private function init():void {
[Code].....
What do I want: How to make this focus to be redrawn without magic (I've tried all the methods, starting with "validate", I've tried calling updateDisplayList() on entire application, I've tried to call styleChanged .
View 1 Replies
Apr 20, 2011
I'm removing an UIComponent but parts of it last being visible. It redraws only when I move mouse around or something. I tried to do validateNow() on its parent, tried to do setTimeout(validateNow, 100) but it doesn't help. When I call it by setTimeout it seems these artifacts shown more rarely but it doesn't solve a problem in all cases. Please guide me someone to read about validateNow(), how it works and how to make these things correctly.
The code is below:
protected var bubble: SpeechBubble;
// creation
bubble = new SpeechBubble();
[Code]....
View 3 Replies
May 17, 2011
I am just starting to learn flash/actionscript 3 and decided to code up a simple particle simulator.The very initial design simply involves filling the screen with a buncha particles which scatter away from the cursor if you were to click.This works, but is a bit unresponsive. I am using graphics.drawCircle() to draw the particles, and each particle is inherited from Sprite.
Listener for mouseclick event:
private function mouseClick(e:MouseEvent):void
{
trace("click");
var now:Date = new Date();
trace("Before: "+now.getTime());
[code]....
How should I make this more efficient? I plan on doing collision detection and other physics interactions later, and this is already a bit slow even without the hefty number crunching code I intend to add later.
View 2 Replies
Dec 19, 2011
I have an flash swf on a page loaded with object/embed tags.
<object width="565" height="300" >
<param name="movie" value="/swf/Sample-Elf.swf">
<param name="wmode" value="transparent">
<embed src="/swf/Sample-Elf.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" width="565" height="300"></embed>
</object>
I need to be able to start/stop or reload this swf with purely javascript as I don't have access to the source swf file to add any actionscript.I figured the easiest way to pull this off is by removing the element and replacing it forcing a redraw with would hince reload the swf movie. Though ie seams to cache the flash element and pretty much look over any updates I make to the embed/object tags and keeps right on going.So how do I force IE to redraw/update a flash element on a page?
View 1 Replies
Dec 27, 2011
When the list item label is changed, the list doesn't redraw until I hover the mouse over changed item. I've tried invalidate & redraw but they didn't work:
//myList is an instance of mx.controls.List component
myList.getItemAt(0).label = 'New Label';
myList.invalidate();
myList.redraw(false);
How to force the list to redraw in this case?
View 1 Replies