ActionScript 3.0 :: Loading BitmapData Into An Array Or Vector?
Dec 10, 2009
I've been working on this for a while, and thought I understood the BitmapData class at least well enough to do basic stuff with it, but I'm doing something wrong.
I'm trying to make a preload function that will load external JPEGs, store them in an Array as BitmapData objects, then distribute them to thumbnail objects after all the images are loaded. The thumbnails are based on an external class I wrote, which already has a function to accept variable data.
My problem is, I can't seem to find a way to store BitmapData objects in an Array. I've even tried using a Vector.<BitmapData> object, but I get the same result, which is no data stored.
Here's the function, isolated from the rest of the script.
[Code]....
The result of this function is supposed to be, a series of images loaded one after the other, stacked 5 pixels down from each other. However, the actual result is, only the last loaded image is displayed. That's true for any number I place in the 'for' loop, only the last loaded image gets displayed.
Obviously I'm doing something wrong with the loading of the 'bitBucket' BitmapData, because it seems to be writing over the previous BitmapData in the Vector series.
I have displayobject with vector and image data And I am trying to scale it in order to get big jpeg out of it with JPGEncoder.The thing is that once I am resample it using the Bitmap class (Matrix) and with draw method it's getting pixelated.How can I take a container with vector graphic and bitmap image and rescale it to bitmapdata without getting things pixled.This is the displayobject:The image in the center is high resolution image which I resize and all the other elements are vector graphic.Since the image is high resolution and all the other elements are vectors if I just call the scaleX property of the displayobkect it increase the contenier size and it all looks very good. But if I want to take a bitmap data out of it it's look terrible, The fonts getting pixelated and even the photo.I will like to know it there is a way to do it without getting things pixelated.
1067: Implicit coercion of a value of type __AS3__.vec:Vector.<Foo> to an unrelated type Array.Really? Doesn't Vector include all the properties, methods and signatures of Array? Is there some low level reason Vector cannot be cast to Array?
I've run into a strange Vector out of range error when trying to splice a Vector array. The idea is to cut off the Vector array after a certain point....
var vec:Vector.<int> = new Vector.<int>(); vec.push(1);vec.push(2);vec.push(3);vec.push(4);vec.push(5); vec.splice(3,vec.length); // output RangeError: Error #1125: The index 5 is out of range 5.
The strange thing is that it works perfectly, if I change the Vector to a regular array like:
I have a quick question for you all. I'm trying to convert over some ActionScript code to C++ and am having a difficult time with this one line:
private var edges:Vector.<Array> What is this exactly? Is this essentially a multidimensional vector then? Or is this simply declaring the vector as a container? I understand from researching that vectors, like C++ vectors, have to be declared with a type. However, in C++ I can't just put down Array, I have to use another vector (probably) so it looks like:
I don't expect you guys to know the C++ equivalent because I'm primarily posting this with AS tags, but if you could confirm my understand of the AS half, that would be great. I did some googling but didn't find any cases where someone used Array as it's type.
I've run into a strange Vector out of range error when trying to splice a Vector array. The idea is to cut off the Vector array after a certain point...
ActionScript Code: var vec:Vector.<int> = new Vector.<int>(); vec.push(1);
Below is a method to populate a vector with a list of strings
PHP Code:[code]....
However, I have an existing array that contains a list of strings.How would I transfer those contents within the array into the vector?The basic way I can think of is using a for loop, and push the values in.
How do I initialize a vector with an array of values? I tried this and it complies fine, but does not work!
Code: langs = new Vector.<String>(["en","fr"]);I also need to load an arbitrary array into a vector, like this: Code: langlist = ["en","fr"]; langs = new Vector.<String>(langlist);
I need to copy a 2 dimensional Array or Vector (8x8), the only success i have had so far is using 2x For loops actually assigning the primatives from one Array/Vector to another (works for 1 or 2, but on the scale i need to run this it is unsuitable).
After a bit of digging on the internet i saw that .concat() is the fastest and most code-efficient way to copy, but i can't seem to get it to work?
Here's what i'm doing:
Code: var _squares:Array = new Array(); for (var i=0; i<8; i++) {
I'm developing a small library and trying to outweigh the pros and cons of using Vector vs. Array. So far, I can only think of a few things to think of: Vector only works for FP10, while Array works for both 9 and 10. Vector is typed (which is a wonderful, fabulous thing), but if I'm only using the Array as a private variable, so I have full control over what goes in and comes out of it, this factor may not play as great a part anymore, but definitely great protection.
I believe I heard somewhere that Vector is a lot faster than Array, yet in a quick inconclusive speed test I did a while back, it didn't seem to make any real difference at all. Is Vector really faster than Array? If so, is it faster in all aspects, or only faster in certain situations just as uint is only faster than Number when using byteshifting?
I'd like to know if there is any way or any vector graphic file format that i can load dynamically at runtime on a web-based flash application.I have some files in pdf that i want to load in and i can convert them to jpgs at runtime and load the jpgs but then i lose vector graphics so when i zoom in and out they become pixelated.
I had a look a look at flashpaper to convert pdf to swf and load them in but i can't see anywhere in the documentation about converting the pdf's at runtime rather than manually dragging and dropping them in.So far i've looked at pdf, svg and .ai but none of these can be loaded at run time just imported into the .So can this be done? Or alternatively is there an application that can do the pdf -> swf conversion from the commandline then i could trigger php to do the conversion at runtime.
How would you go about initializing a Vector. with say the values 1, 2, 3, 4, and 5.
Logic would say you could do newVector = new Vector. ( [1, 2, 3, 4, 5] );
You could also try something like this...
var tmp = [1, 2, 3, 4, 5]; newVector = new Vector.(); newVector = newVector.concat(tmp);
But then you get a type error converting Array to Vector.
I'm stumped, am I missing something stupid or does the vector class really not play well with numeric types? You can try making them decimal numbers just to be sure they get cast as number and not int.
Because of the inability to create Vectors dynamically, I'm forced to create one with a very primitive type, i.e. Object: var list:Vector.<Object> = new Vector.<Object>(); I'm assuming that Vector gains its power from being typed as closely as possible, rather than the above, but I may be wrong and there are in-fact still gains when using the above in place of a normal Array or Object:
I am working on a prototype of a system that will take stills from an attached video camera, store them in an array, then pull them back from the array and animate them. Thus far I've been able to create new bitmaps, put them in an array, and draw them to the stage. I have the video source coming to the stage and I have been able to take stills.The combined system, however, goes through the array, draws the bitmaps to the stage but they are not the sequence of stills. Instead, it is a set of bitmap objects that change every time I click the mouse to take a new still. My guess is that whatever I am doing wrong has caused the bitmapdata to remain dynamically linked to the video source or to be changed every time a new still has been taken. I feel like I am close but missing something major in how AS3 works.
// libraries to display bitmap of videoimport flash.display.BitmapData; import flash.display.Bitmap;import flash.display.DisplayObject; // get and show the input from the cameravar cam:Camera = Camera.getCamera(); var
I can load external JPEGs, transfer their data as Bitmaps into an Array, and place those Bitmaps to the stage immediately using the Array index. ("bitmapList[2]", etc)
However, when I try to reference the Bitmap Array by index anywhere else in the script, it's blank. No error, just blank.
I'm going to create a iOS app in flash and convert. I'm thinking I may want to load graphic assets at runtime. I'd like these assets to be vector graphics so they can be resized easily with no quality degradation. I usually use SWF files ofr this purpose. Unless I'm wrong, a converted iOS app probably does not load SWF files. So I'm wondering what kind of vector graphics file format can iOS load at runtime?
I need to know the best method to find an item inside a list (Vector, Array, Dictionary, whatever is faster) of complex type (extensions of Objects and Sprites).I've used "Needle in Haystack" method, but it seems that it isn't fast enough.
E.g.Suppose that I have a collection of Sprites (a pool, in fact).Each sprite will be added to the stage and perform some action. After that, it will die.I don't want to pay the cost to dispose it (garbage collect) and create another (new) one every time so I'll keep the dead sprites in a collection.
Sometimes times I'll call a method that will add a sprite to the stage.This sprite can be a old one, if it is already dead, or a new one, if the pool don't have any free sprite.
One of the scenarios that pushed me to this question was a Particle System.A "head" particle leaving a "trail" of particles every frame and exploding into a flashy multitude of particles... Every frame...Some times this counts up to 50.000 PNGs with motion, rotation, alpha, event dispatching, scale, etc...But, this is JUST ONE scenario...At the moment I'm trying to use a Object Pool with a Linked List...Hopes that it will be faster that running a whole Array/Vector or create new instances every frame an let them dye with Garbage Collection.
I want to load .jpg images into flash and store them as BitmapData objects. I've coded the loading of images many many times but I've never tried to store them as BitmapData, I just usually add the Loader to the display list and manipulate the image through its loader.
I feel like this is a very poor approach and so I want to try just saving BitmapData, because on the Model side of things thats really all I need.
Now the only way I have found to extract BitmapData from a loaded JPEG is to load the JPEG and upon completion write:
myBitmapData = Bitmap(loader.content).bitmapData;
First, is there a way to extract the BitmapData without encumbering the code with the Bitmap class? In other words, is there a way to extract that information without involving the Bitmap class - BitmapData while useful for a Bitmap is not dependent on Bitmap so ideally I would never involve Bitmap here.
Also, why is this Bitmap type-casting so widely accepted? loader.content is a DisplayObject and therefore is not necessarily compatible with Bitmap. Further, for all Flash knows we just loaded an SWF and as far as I know you can't typecast that to a Bitmap.
ActionScript Code: 1067: Implicit coercion of a value of type __AS3__.vec:Vector.ie.aro.floorplanviewer.model.buildingVOs:ConfigurationVO>[code]....
which surprises me as ConfigurationVO inherits from NodeVO.Is the compiler really not able to figure out that a Vector of a superclass should be able to hold a reference to a Vector of a subclass?
I need to import a bunch of vector work from Photoshop into Flash. Is there a trick to it. So far, on import, it's converting the layer styles into black.