ActionScript 3.0 :: Flash Clearing Graphics Object Of Sprite When Dispose Off
Jan 29, 2012When I'm disposing a sprite which has drawings on its graphics object, Do I need to use "graphics.clear()" or is "mySprite = null" is enough?
View 3 RepliesWhen I'm disposing a sprite which has drawings on its graphics object, Do I need to use "graphics.clear()" or is "mySprite = null" is enough?
View 3 RepliesI am in a very peculiar situation here with my AS3 code. I was profiling my app in Flash Builder 4.5.1 as it seemed that it wasn't GC-ing some objects properly.
how to get rid of this object? Or how to determine what is holding it alive?
What does 1 Path mean? What is that GC Root and how it got there?
I am using robotlegs with IModuleContext, SignalCommandMap, LazyMediatorMap.
EDIT #1: It could be related to the robotlegs injector issue... or not, still waiting for some answers.
I've come across an undesirable effect of using JointStyle.MITER when clearing/redrawing graphics.My project involves managing custom line graphics with both round and sharp edges, which is why I would like to use a miter joint style.When the line thickness is greatly increased, even the round areas of the line are affected by the miter style. While I find this unfortunate, it's understandable and not the bug I'm referring to. the bug(?) occurs when decreasing the line thickness doesn't completely clear the graphics, as instructed to do so by the code each time the thickness changes, leaving artifacts of the line graphics where the line once was. Artifacts are also left by sharp edges, not just rounded corners.
I'm using Flash Player version 10.1.53.64 on Mac OS X Snow Leopard (10.6.4).use the left and right keyboard arrows change the thickness of the stroke of a round rect.The graphics artifacts are superficial. Dragging the shape over their location after they appear will remove them. Code updated with dragging functionality.[code]
It has been a great resource of the years. No my problem. I am trying to dynamically resize a sprite that has a line drawn into it. Here is my code:
[Code]...
If I have a sprite, with which I have drawn some stuff, how do I erase part of what I have drawn? Preferably I could use drawRect with some "alpha=0" paint. However, I don't believe beginFill lets you set an rgba color (like you can in bitmapdata). Setting alpha = 0 in beginFill doesn't really do anything -- it just draws nothing. In my particular use case, masking isn't an option. Also, calling clear() isn't a good solution since it clears away everything.
View 3 RepliesI am new at AS3 and for a simple task it seems I have a lot of code but here is my problem.The code below displays wind direction and the speed of it, but I want to convert that code into a re-usable function where each time displaySprite (after adding and event listener ie: displaySprite.addEventListener(MouseEvent.MOUSE_CL ICK, clearAndRedraw); ) gets clicked it will redraw the same sprite with new information.
Code:
import flash.text.TextField;
import flash.text.TextFormat;
[code].....
I have a brick class where I have created a rectangle using flash.display.graphics.I am using this brick class to create a grid of 10 X 10 in another class called grid using new brick() in a for loop.I have another class called ball where I have created a circle with flash.display.graphics.The problem is that I want to remove / destroy individual bricks when the ball hits the bricks on Event.ENTER_FRAME which is not happening.the error I get is shown only for the last brick that is created in a for loop.ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display:isplayObjectContainer/removeChild()
at grid/ball_movement()// my function in enter frame event
The code I wrote in ENTER_FRAME is
[code].....
I have a brick class where I have created a rectangle using flash.display.graphics.I am using this brick class to create a grid of 10 X 10 in another class called grid using new brick() in a for loop.I have another class called ball where I have created a circle with flash.display.graphics.The problem is that I want to remove / destroy individual bricks when the ball hits the bricks on Event.ENTER_FRAME which is not happening.the error I get is shown only for the last brick that is created in a for loop.[code]
View 1 RepliesI have a MovieClip with pictures on all its frames. How can I copy the contents of MC's current frame (picture) to a Sprite?
View 1 RepliesI am using a third party flash as3 code to load graphics using sprite. There is a class (load) that takes care of the loading of the graphics.In a new class(getname), I want to be able to1. Load the graphics (done)2. On mouseover change the color of graphics(done)3. Display name of rolled over graphic (not working). I have tried the following in
getname:var feature : load;feature.name;
I get a null object error. Now I have used the mousevent routine(e.target.name) and can display the instance #(instance149). But what I really want is the name of the graphics that the load function loads (graphics and the dbf with all the attributes including the name).
Where does the .x and .y property of a movieclip in actionscript 3.0 measured from? from the centre of the object? or..
[Code]...
I"m new to AS3 and I would like to know how can I get to graphics of a Sprite so I could draw it directly from it. I mean I don"t want to use Sprite class as my concrete objects I just want Sprite to hold graphics so if my own object needs to be drawn it asks for graphics to SpriteManager which returns Sprite with required graphics and draws it exactly where I want to not where Sprite's coordinates points to.
View 1 RepliesI have a program that dynamically draws a polygon wherever the user clicks on the screen. (using lineto, moveto) However this polygon is always behind the other symbol objects on the screen even though its added last in the childlist. Is there an issue with depth when drawing symbols vs. drawing with lines? How can I ensure my dynamic object will display in front?
View 3 RepliesI have created a sprite as below:
var arrowHeadRight:Sprite = new Sprite();
with(arrowHeadRight.graphics){
beginFill(0xDDDDDD, 1);
moveTo(50,0);
lineTo(0,50);
[Code]...
On Mouse Over, I wish to change the color of the fill on this shape? Can this be done or do I have to re-draw the graphics with an updated beginFill line?
Is there a neat minimal way of doing this? (this produces an error):
var freeSpace = shape.freeSpace() // returns Rectangle
var s:Sprite = new Sprite();
s.graphics.drawRect(freeSpace);
Just looking for a more cleaner way other than something like .drawRect(freeSpace.x, freeSpace.y, freeSpace.w, freeSpace.h) I know you can do it with bitmapData.fillRect(rectangle), but need sprites in this case.
I wrote this code and it doesn't work:
[code]....
Did I miss a class that I have to load? What's wrong with it?
I'm coding games that come with the graphics done. Unfortunately the designer has some bad practices, such as not using Sprite symbols - never. And the files have dozens (even hundreds) of symbols in the library, very few of them with any animation. I would like to re-brand such symbols as Sprite to save some CPU (and maybe even kB), but my graphics-related skills are very low. Where should I start? Check and convert the symbols at authoring time or it's possible to do this at runtime? Can I effectively convert a MovieClip to Sprite (I'm guessing casting to sprite won't help much) or another light image type?
View 3 RepliesSo I'm playing with a project where I want my class to be able to use the functionality of the Graphics class without needing to extend Sprite/Shape. My goal aside, I guess I'm confused as to how it works at all? It's methods don't seem to return anything, and since it's added as a child property of the Sprite/Shape classes , I can't seem to figure out what it's actually doing? It's also one of those classes that can't be instantiated.
At this point, I'm just plain curious. EDIT: I should provide more clear distinction of what I'm looking for as answer. I have read the documentation, but the documentation doesn't account for what AS3 is actually doing. I'm looking for educated guesses about the programatic relationship between Graphics and the the classes that use it.
Here is the flash file I am working on for a local kids charity so you can see [URL]. If you press the next button 9 times it will bring you to a drag and drop game I have made, you have to match the targets so it spells cat, this works fine, the problem I am having is that the objects you match stays there for the rest of the frames (try it yourself by pressing next) I am just wondering how to clear this?
View 1 RepliesI am trying to create a flash visual showing a time series of data on a world map. I have created a flash file which 1) creates proportional circles for each country of interest (in this case 6 countries) and 2) has a timeline so that the circles change through time. I have successfully gotten the timeline to work with the proportional circles, however the circles to not clear out before displaying the new circles when adjusting the timeline. I am not able to figure out how to properly clear out the circles. I have tried using the holder.removeChild(c) command before I create my new circles, but get an error which states 'Parameter child must be non-null'.
ActionScript Code:
import XMLLoader;
import ProportionalCircle;
[code]........
If I have declared my vectos object as such ActionScript Code:
private var _delsUI:Vector.<Single> = new Vector.<Single>();
fill it with data like:
ActionScript Code:
_delsUI.push(newListing);
Then later on I decide to use this:
ActionScript Code:
_delsUI = new Vector.<Single>();
Will this essentially destroy all objects and prepare them for GC if there are no other references any where else? or do I have to loop through the entire Vector and delete and set null each object?
[URL]I got it working but the problem is, is when i go to the next frame the items that are matched succesfully stay there, I want to know how to clear them, so they don't get in the way of the next frames.
View 10 RepliesI got it working but the problem is, is when i go to the next frame the items that are matched succesfully stay there, I want to know how to clear them, so they don't get in the way of the next frames. Maybe it is something simple?
View 22 RepliesI am trying to remove an event listener on a FileReference object by calling a function, but it seems not to be removed, and I do not understand why.
Here is the code:
private function clearFileUploadListeners(file:FileReference, index:String):void {
var dispatchEvent:Function = function(event:Event):void {
dispatch(event.type, event, index); };
file.removeEventListener(Event.COMPLETE, dispatchEvent);
var bool:Boolean = file.hasEventListener(Event.COMPLETE);
if (bool)
trace("ERROR");
}
When I run this code, the trace actually happens. I don't understand why this boolean returns true, when I just tried to remove the eventListener just above! I believe it has to do with the fact that the dispatchEvent function is defined inside another function when I add the listener:
private function upload(file:FileReference, index:String):void {
var dispatchEvent:Function = function(event:Event):void {
dispatch(event.type, event, index); };
file.addEventListener(Event.COMPLETE, dispatchEvent);
}
The problem is that I need to access this "index" variable from the listener, and I can't set it as a global variable as each file has it's own index and it's a burden if I have to extend each event class to keep track of the index (Event, ProgressEvent, ..). I actually found a temporary solution, I am not sure if it is the best! I put my removeListener method actually inside the upload method, but made it a variable. As AS3 allows dynamic object, I attached this method to one of my object, and so I just call the reference to the method when necessary. The event is actually removed.
Is it possible to draw a Bitmap to a Graphics-Object like
this.graphics.beginBitmapFill(bitmapData, matrix, false);
this.graphics.drawRect(0, 0, w, h);
this.graphics.endFill();
with an offset?
A simple moveTo(x, y) call before beginBitmapFill does not work :/ Neither does changing the x and y value of drawRect... (That just seems to have the same effect as an translation with the matrix...) Additionally I don't want do draw that thing in a separate Graphics-Object and add that one into the other...
I am wondering if it is possible to get the data that is stored in a shape/graphics object in flash using actionscript 3?
In my project I would like to be able to draw a shape and then read all the points in that shape into my script. The reason for that is that I need go generate lines from those points that I later can use to check if my characters velocity intersects with any of them.
i am trying to receive in my function as a parameter either a shape or a sprite and then access their graphics property, but this gives me an error:
Code:
public static function makeRect( obj:DisplayObject, ...
var g:Graphics;
if(obj is Sprite){
[code]...
//1119: Access of possibly undefined property graphics through a reference with static type flash.display:Graphics.
* I have a flash project called contact
* The document class is ContactClass
I am trying to make a sprite button with graphics and can't make it work. I have successfully added text fields so I know the path is correct. I suspected my code was correct and confirmed it should be, after reading several tutorials showing the process for creating sprite buttons with graphics. Anyway, I imported nearly every class on Earth, but certainly everything which needs to be. Stage is gray and 800x600.The graphics code by itself with appear, but not when linked to the sprite. Also, the sprite won't appear no matter what. Another interesting piece of the puzzle: nothing will trace, not even objects such as textfields which actually appear and function on the stage when I text the code.
public class ContactClass extends Sprite {
public function ContactClass() {
var home_btn:Sprite = new Sprite();[code]....
I'm making a game where I have must have some objects like weapons and characters, which I in the end would like to get visual as a sprite or movieclip
Should I write the logic for the objects in several classes and then make a reference to the object in a sprite class like the following :
[Code]...
And then when I need to do damage just call the WeaponSprite's method weaponModel() when I need to acces the methods or should I just merge the two together into one class.?
I'm made an Item class which extends the Sprite class, the Item class basically has a few checkmarks & labels at the moment.
Then what I try to do is run through a for loop of items and create Item classes that I want to place one after each other on the y-axis, so I'm reading the Item.height property to find the y of the next Item in the list.
The problem is for some reason there is always an extra 75 pixels added to the Sprite height at the bottom, no matter how many checkmarks and labels are in each Item class ( varying the height of the Item class ).
Any idea why this is being added and how it can be removed?I'm having trouble figuring this out, I tried dynamicly calculating and setting the Item.height property but when I do that the Sprite is simply cropped.