ActionScript 3.0 :: Knowing When An Object Moved Globally?
May 5, 2011
I saw this question a few times here and there but it never had a satisfying answer... It may be that there really is no elegant way to solve this (Polling for change in ENTER_FRAME is really bad!) but I've got to ask one last time.
I'm a Flex developer but it doesn't really matter in this case.
I would like to know when an object's global x/y was modified (or its transform's concatenated matrix's tx/ty, same thing), maybe because an indirect parent somewhere moved, etc.In particular, I have the object's gran gran gran parent which gets its scrollrect changed.
I'm trying to use the BitmapData.draw() method on a sprite which I create through my own external class, but all I was getting was white. Finally figured out that it was taking a half a second or so for the sprite to pop up on the stage, and the draw method was apparently "pixelizing" it before it was drawn.
So my question is, how does one know when a non-loaded object is "ready"? Do I need to add my own event sent from the end of the external constructor code? I don't want to modify the class just to snap a picture of it. Waiting an arbitrary amount of time with a timer seems wasteful too.
Code: Select allvar bc:BarChart = new BarChart(500, 300); addChild(bc);} var bitmapData:BitmapData = new BitmapData(500, 300);
Lets say I have a customMovieClip. I sometimes draw an ellipse with customMovieClip.graphics and sometimes a rectangle. Now I want to know what was the shape ( ellipse/rect) that was created using a particular graphics object. Doing this would enable me to pinpoint what exactly to do with that customMovieClip() instance.
I am trying to find an object in the display list. All that is known, is the name of the class. I recursively iterate through every child in the display list to find my object's instance, and unfortunately everything was instantiated at runtime and was given a generic instance name. This videoplayer has around 300 children(ugh), and through trial and error I found my instance I need to get a hold of, instance60. Now it would be fine by using just the instance name, but the thought of it being called a different instance name would send this program into insanity.
We have an asp.net website that uses a flash movie to do HTTP file uploads, it works seamlessly on IE. When using firefox, it fails to upload .. HTTP debugging revealed that the page we are posting to returns the following:
HTTP <html><head><title>Object moved</title></head><body> <h2>Object moved to <a
tarting a script to make my object move to the coordinates of where i click on my mouseand if possible i would like to make it animate to each coordinate like its moving there not all of sudden jumps there when you click somewhere.
I have a object in an ISOmetric room I made and I made bounds that are as tall as the char so that he could not go up the wall.I'm wanting do do the same thing with a dynamically loaded SWF that contains and object that can be moved around and stuff,well I have tried to make it so that when it collides with the bounds I made for the man it would stopdrag() but it won't!
Is there another way I could do this or a way to impove the current way??
I am working on a very simple game in Flash. I want to make all the animations framerate agnostic, so that I can change the framerate without affecting the flow and speed of the game.I read somewhere that if you want to do that, you simply create a Timer object and attach an event listener to this timer.
What if I have many objects that have to listen to the same timer? See the code to understand what I am trying to do. At this stage nothing breaks, but the event does not fire.Here is the Main class, the one that runs on swf execution:
public class Main extends MovieClip { private static var _stage:Stage; private static var _timer:Timer;
I have a dynamic input textfield and I have a scrollbar successfully scrolling the text. As soon as the textfield receives focus the scrollbar tweens into position. I would like to have the scrollbar tween in only when it is needed, which of course would be when the texfield has one more character than it can display in the viewable area. Is there some sort of event I should be listening for that would tell me that the textfield has grown past the viewable area?
Is it possible to know the dimensions of an flv loaded throught an URL ?
What if you want to load different videos with different sizes on the same video object? Does the video object change in size depending on the flv you're loading?
One can easily remove a listener like so: circle.removeEventListener(MouseEvent.CLICK, maskSquare); BUT, is it possible to remove a listener (or preferable ALL listeners) from an object WITHOUT knowing the function that the event is tied to?[code]
I have a flash project that involves using glow filters on several mcs all over the site, the problem is, the current way I'm doing it requires me to declare and assign the filter on every MC's container.
Is there a way where I can just declare the glow filter once on the maintime line, and then simply apply the filter on the MCs where needed?
this is what I use for every MC, and it's really tedious and hard to keep track of/change.
Code: var Glow1:GlowFilter = new GlowFilter(); Glow1.color = 0xFFFFFF; Glow1.inner = false;
For examples sake, say I have an 'Icon' class. When you set Icon's 'name' variable, it downloads the image (of the given name) from a server/directory.
The problem however, is that even though the name (of the image) is provided, the name of the server, or even the folder containing the image is not.
Of course, I could explicitly define the full name and location of the file to the class, but if I ever decide to change folder structure I would have to go through and find all references to the folder and change it. It also seems wrong to litter all of my parent classes with arbitrary URL's to feed to the Icon class.
The preference of course would be to 'globally request' the image server/directory on instantiation, but in the world of OOP how is this best achieved?
I was just about to have the Icon class dispatch a bubbling event, letting something at the end of the displayList catch the event/request and feed it the information (a String) it was looking for, but it didn't feel right. It feels like dispatchEvent should only be used to Dispatch Events, not request a string...
Also, I've come up to similar situations where I've needed a similar request structure without being an extension of EventDispatcher (such as just a primitive Object). Is there a best practice for both?
[URL].. lines a lot in our files to set up AS Tweens. Is there a way to import these globally on one frame of ActionScript instead of having to put it in AS for every time an MC is being tweened?
i assigned some variables called charstrength and so on but i want to access these variables globaly as the action is on the first frame with all the variables stated and on the second frame i need to access those variables but it just wont let me.
I'm trying to control different sound attached in different frame. I want a button to turn on/off different sounds separately and globally. I mean after I've press one button in, let's say, Frame 1, it can turn off/on one sound attached in Frame 2 but another sound is not affected.
Right now, I've create 2 buttons for each sound to turn on/off the sounds sounds by setVolume() but I can work only when I entered that frame and press button in the frame. If I've press the button in Frame 1 and go to Frame 2, it did not take effect.
Here is my code for attaching different sounds in Frame 2:
Code: infoSound = new Sound(infoSoundMc); infoSound.attachSound("info"); alertSound = new Sound(alertSoundMc);
[Code]....
Is there any other command to turn on/off sound besides setVolume()?
First shortly about how my site works: When a link is clicked it checks if something is already displayed in either the Left or Right side of the screen (the website looks like a book, so I have a left page I want to display information on and a right page). If there is already something showing it hides it and displays the new object, together with this it enables all the buttons within that object (I have separate functions to set up each object).
What I'm trying to do is to remove all the previous set EventListeners without having to create separate functions for removing the links inside every object as well.
How do I remove all EventListeners on all objects inside another object? The only variable I want to store is the object containing everything. There are however not always EventListeners within the objects.
I have a few functions that accept several parameters. [code]...
Is there a way to loop through all the params (without knowing how many or their names) and put them in some kind of an array with their names, so I'd get an associative array [code]...
I was just wondering if it was possible to get a reference to a function without knowing its name until runtime, in a similar way as getattr() can be used in python?
I have a list of images, and without scanning through each pixel in each image, I want to find out if the image contains transparency (at least one non-opaque pixel).Is there a shortcut to do this (like a property of bitmapData object) rather than looping through the pixels?
I just started developing flash recently and I need to globally mute the audio in an swf by javascript ... I've got the following functions in my AS3 already.
Code:
function mute():void { var st:SoundTransform = new SoundTransform(0); SoundMixer.soundTransform = st;
[code]...
Do I need to use addCallback() somehow to trigger this through javascript?
Is it possible to limit globally the bandwidth usage of FMS 3.5 ? I don't want FMS to use all the bandwidth available via our ISP.I want my coworkers and other servers to be able to continue using Internet while sending/receiving data from/to FMS. I know it is possible to limit various bandwidths per Applications, but it seems there is no easy way - using the xml config files - to globally limit the server bandwidth.
Is it possible to adjust the frame spacing for all layers?For example, I have my stuff (graphics, text, etc..) spaced at 24 frames. Is there a way to globally adjust everything to 48 frame spacing? or 12 frame spacing?
I have a project in ActionScript 3, Flash Professional CS5.5, and AIR 3. I have several custom classes that I need to access. Currently, I am successfully accessing via the traditional method:
import trailcrest.core.core; var Core:core = new core();
However, I came to a realization in my code...this creates a COPY of the class, and doesn't give access to the original. This, of course is a problem - I need one symbol's scripts to modify a variable in the class, and another symbol's scripts access that changed variable. Obviously, right now, that is not occurring.How do I do what I am describing? Should I somehow create a "public var" for the class (though I need instructions on how to do that...I can't use "public var" within stages or symbols)? Is there some way to directly access the class?