ActionScript 2.0 :: Referencing BitmapData Loaded With MovieClipLoader()?
Feb 7, 2006
The starting point is that I load an external PNG file into an open SWF application with the following code:
---------------------------------------
var loadListener:Object = new Object();
loadListener.onLoadInit = function():Void {
//do certain actions - not relevant for my question
};
[code]....
That works fine. The problem is how can I later reference to 'flower02.png' as BitmapData which is loaded as a movieClip into the movieClip 'mc1' to execute certain BitmapData methods like in particular 'copyPixels()'?I'm aware that I could use:
---------------------------------------
import flash.display.BitmapData;
var libId:String = "flower";
var flowerBmp:BitmapData = BitmapData.loadBitmap(libId);
---------------------------------------
In this way I could reference my BitmapData by its variable identifier 'flowerBmp'. But this would require that my 'flower02.png' is already in the library which is not possible for my purpose.
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");
I'm doing a small site in which I'm probably gonna use a simple layout and load the actual content as swf's into a box... So far, the listeners for the MovieClipLoader class works fine, but the loaded content (which has the same exact size as the box it is loaded into) is being scaled in a strange way. When I trace the width and height after the clip is loaded I get the numbers I want (mostly) but it still LOOKS stretched. I've checked that the container clip isn't scaled, I've set the xscale and yscale to 100, I've manually tried to set the width and height (with the onLoadInit listener AND the onLoadComplete listener) but the numbers does not work as they should... It does resize, but not to the exact values I give it.
I am loading an external .swf into a container movieClip & using movieClipLoader to preload the .swf. The my progress bar works, but when it reaches 100%, it doesn't show the loaded .swf.
I've got a gallery that loads images in using MovieClipLoader. Unfortunately once the images are loaded they don't seem to want to be resized.I've added an empty MC to the stage for each one and loaded the image in, then I try to resize it to fit the screen. Tracing the size after the onLoadComplete event returns 0 and changing the size makes the clips disappear from the screen.
Code: var container:MovieClip = createEmptyMovieClip("container", this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(this);[code]....
This always traces the width/height of the content of the external crossball.swf file, not its stage dimensions. So let's say crossball.swf has a document size of 200 by 200 pixels and in it is a shape of 115 by 30 it will trace the last as the width/height of 'container'.Is there any way to get the stage dimensions of an externally loaded swf through moviecliploader?
I'm using a preloader and MovieClipLoader to seemingly good effect and I have an ending sequence to my preloader where it plays out once the target clip is loaded. The ending sequence features within the preloader itself (preloader_mc.endingClip). preloader_mc plays through its frames with:
[Code]...
until it gets to 100% and then gets to a frame telling endingClip to play. All good unless the target clip is already loaded. Then what happens is that the preloader jumps to 100% and only plays the ending sequence. I would like to have a way of checking to see if the target clip has already been loaded so as to avoid displaying only this ending portion of the preloader.
I'm trying to create a wrapper written in ActionScript2, which loads a second AS2 swf then when this loaded swf has finished animating the wrapper will load a second swf. This is the code I have to load the first swf:
I'm working on a Flash application that has thumbnails and fullsize versions of an image. The steps I'm taking:
- import the image at runtime, and attach to a movieclip (we'll call it polaroid, since that's what I'm calling it).
- resize polaroid via polaroid._width=3; polarois._height=3; to get my thumb
The image quality is OK for pictures, but it's also fairly important that text not look too pixelated. Is there anything relatively simple (i.e. not too taxing on RAM) I can do here? Even a blurring layer would do the job, if there is any such thing.
I'm using MovieClipLoader to load in external swfs so that I don't need to include a preloader on each one. I'm really unfamiliar with this technique, including how to use and implement listeners and follow the functionality after using it, I've just been playing with borowed code.basically i've been trying to use this code:
Code: var loader:MovieClipLoader = new MovieClipLoader(); loader.addListener(this);
Im having problems with assessing the size of an image after having loaded it into a movieclip using MovieClipLoader.Im trying to use the onLoadComplete-method to determine when the image is completely downloaded into the imageholder-mc, but Im just getting the original size of the mc, not the image's.[code]
Im having problems with assessing the size of an image after having loaded it into a movieclip using MovieClipLoader.
Im trying to use the onLoadComplete-method to determine when the image is completely downloaded into the imageholder-mc, but Im just getting the original size of the mc, not the image's. I using the MovieClipLoader incorrectly somehow?
Code: var MCL = new MovieClipLoader(); MCL.loadClip("IMAGE.jpg", mc_ImageHolder); MCL.onLoadComplete = function (targetMC) { // perhaps 'targetMC' should be used? trace (mc_ImageHolder._width); // outputs mc's original size, not image's size }
I have a swf that is loaded into my main swf with the loader class. When I click a button in the main swf I want to call a function in the loaded swf Main class.
When I do a trace it is showing the loaded clip as [object Home] which is the name of the Main document class associated to the loaded swf. I have a public function in my Home.as called startAnimation() but when I try to call it I get
[quote]1061: 1061: Call to a possibly undefined method startAnimation through a reference with static type flash.display:Sprite.
The following code gives me an error:1119: Access of possibly undefined property sp1 through a reference with static type flash.display:Sprite.Not sure how to get around this issue... these things used to work in as2, I guess not anymore in as3...
---------------------------------------------------------------------- ------------------------------------------------------- loader = new BulkLoader("timelineLoader");loader.add(ExternalFiles.TIMELINE_SWF);loader.addEventListener(BulkLoader.COMPLETE, onCompleteHandler);loader.start();
I just poked around google as well as these forums, but the only answer I am seeing that was successful, is from kglad, and for some reason his posts are not showingAnyway, I am just trying to figure how to reference a frame label on my main timeline from a loaded swf (through my imageLoader).
But when I do this, since the movie is not loaded the file is not compiled and gives me an error your referring to something that is not there. How else am I supposed to reference a content that will be loaded later?
I'm having trouble referencing variables in a loaded movie. I read in other posts that you simply refer to the variable as if it belongs to the clip you load it into, however this doesn't seem to be working for me
then MySWF doesn't show up on stage whereas with aSlider.addEventListener(SliderEvent.CHANGE,OnSliderChange); it does appear. I need to use this["aSlider"] because of this [URL] as pointed by [URL] to my previous question.
So I am using the following code to load an external swf and am trying to reference the timeline of the loaded movie i.e. a frame label. Say I wanted to do a simple gotoAndPlay what is the syntax? I would use (myloader.gotoAndPlay ("framelabel") this seems like an obvious answer but doesn't seem to work for me.
Code: Select allfunction yesClick(event:MouseEvent){ /////// Loader (Loads External SWF lesson file) ********************************** var myLoader1:Loader = new Loader();
I have a widget containing a number of displayobjects, i.e. up arrows, down arrows, tab 'buttons', backgroundrectangularblocks, sliders, company logos etc.I am currently creating these displayobjects using the graphics class with parameters taken from an external file, things such as fontsize, font, colour, width, height e.t.c and adding them as children of "container" sprite objects for easy manipulation and referencing later can these assets be loaded in their entirety externally, rather than being created using graphics class draw methods (which I want to avoid) as some of the things I need to design cannot be created in pure actionscript very easily (if at all?), and then used or do they always have to be in the library and instantiated from there?
if the first question is yes they can be loaded externally, this question probably isn't needed; however, if I have to put the items in the library and recompile each time a client wants to use say a curved blue up arrow instead of a yellow one and then decides he wants a yellow circle instead then how do I write the code to do the following:-Say on my first ever compile I have 'upArrowBtnset1' in the library, I instantiate it and use the instance name to access it in the usual way using standard code,
Now if they send me a second set of 'upArrow' graphics they want to use I could either update all the upArrowBtnset1 assets with the new graphics meaning the original set is no longer available to the client and I would either have to hold a "original set" FLA file with the first set of arrowbuttons or I could import these to the library as upArrowBtnset2 and a third set they send as upArrowBtnset3 and so on each time I am sent some new assets; I would then recompile them into the SWF and adjust the references to the new assets within the code. In the code, for each instance of "upArrowBtnset1" I would have to rename them to "upArrowBtnset2", recompile and send it back to the client.
Because I have already abstracted the font/colour/size choices out to an external file, they can change that as much as they like without a recompile which is what we want. The problem comes if they want to use set1 again and haven't kept the original "set 1" compiled SWF. It would be easier to abstract the 'setchoice' also to the external file. The SWF would over time build more and more available sets that they could use by just changing an external variable.
For example, if the designer wants to use set 1 on Monday, set 2 on Tuesday and set 3 on Wednesday I want to make it so they can just adjust an option in an external file to "setchoice = 3" for weds instead of either having to recompile the swf each time or they have to have 3 versions of the SWF for each asset set. The idea is that as more and more assets are added in, they have more and more choices. Ideally, in an external file there would be a list of assets and links to where they are loaded from. (i.e question 1 above).
If I have an external file (say XML) which holds the setchoice option that the designer wants to use (say they want set3 today) my 'generic' code has to be something like upArrowBtn(setchoice).scaleY and every instance in the code where that object is used I append the 'setchoice' as chosen by the designer from the external file where (setchoice) is retrieved from something like var setchoice:String = "set3"; from the external file (I am currently abstracting all the adjustable variables to a configuration.as file. I will work on using an XML later when the principle of external files works (I hope!);
Is it possible to import assets from external sources and then use them in the SWF as if they were in the library? The loader class? Is this just fraught with danger I wonder.
Essentially I am being asked to remove as much as I can from the SWF so that if the client wants to change the positioning of things on the stage or the text on buttons or change the style of the buttons or the company logo they don't have to come back to us to ask for a recompile of the SWF for each tiny adjustment. Inevitably SOMETIMES a recompile will be unavoidable (such as if they want the widget to suddenly be twice as wide (i.e. the stage). My code already handles some of this using stage.stageWidth and then positioning objects relative to other objects already on the stage using this value and centred so that just changing the document properties is all I would have to do and everything else adjusts proportionally. I am trying to make this as reusable as possible with as little effort from myself as possible to save our company wasted time.
After all that waffle, my question is this, if I can't load all my buttons and assets and things externally, how do I write the code for this:- I have a library asset called upArrowBtnset1 and another called upArrowBtnset2. Instantiated with say upArrowButtonset1 and upArrowButtonset2 The code would normally be upArrowButtonSet1.x = 100; upArrowButtonSet2.y = 300; but I need it to be upArrowButton(setchoice).x = 100; upArrowButtonSet2(setchoice).y = 300; where (setchoice) comes externally from var setchoice:String = "set1";How does the code change if the (setchoice) string was named not at the end i.e 'button(setchoice)UpArrow'?
ActionScript Code: var numClips:Number = 5; for (var i:Number = 0; i < numClips; i++)
[code]....
I need to do something like, getChildByName("mainTab"+i).addChild(myMovieClip) ? or maybe this["mainTab"+i].addChild(MovieClip)?Is it possible without using .name?
I have a class that loads an image and offers you the ability to have it in a bitmap or bitmap data object available after the image has loaded. But when I try this:
MainMove.swf is doing a loadmovie of SecondMovie.swfThe Button that loads SecondMovie.swf also disables other buttons in MainMovie.swfon (release) { _root.intro_btn.enabled = flase; loadMovieNum("SecondMovie.swf", 2);How do I Re enabled the Buttons in MainMovie.swf from a Button within SecondMovie.swf???
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..
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.