Actionscript 3 :: Positioning Flash Graphic Drawn With Graphics Class?
Mar 3, 2010
I'm using Flash CS3 to build a simple drawing application. When the user clicks a button, they select a particular movieclip. After clicking elsewhere on the stage, the clip is instantiated and added to the stage at the position of the cursor. I've also added the option of being able to click on the added clip and drag it around on the screen. And this all works fine.
The problem is that I also want to be able to dynamically draw and add objects to the stage via the Graphics class. Whenever I add objects in this manner, their x and y coordinates are always 0,0 no matter where I place them on the stage. This makes positioning these graphics very very problematic. I created a modified positioning function specifically for these dynamically drawn graphics and while it does "work", it feels less responsive than the positioning for movieclip objects. I'm still trying to optimize this function, but it seems to me that the ideal solution is for the graphics to have non-zero coordinates when placed in the middle of the stage like movieclip objects. Is there some "workaround" to achieve this?
Internally Flash obviously keeps a list of the primitives drawn using Graphics so I wondered if you have many such primitives in a Sprite, can you re-position/remove/alter individual items rather than clear and re-draw everything? Or is this deeper into the bowels of Flash than you're allowed (or recommended) to go?
I was wondering about MC and hey can help to lag a game out. I set up an advanced class system so i don't have to use MC to simulate walls, all i use isthe x,y,width and height. Well anyway since i don't need MC anymore I was wondering if there is a way to attach Graphics instead of MC cause a Graphics file size is relatively small than that of a graphic, I think. If anyone could tell me thats true and show me a way to attach graphics that would be nice. I haven't tried it yet but maybe if I exported the graphic from the library imihgt be able to call its name, but it doesn't have an instance name so im stuck.
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.
Is it possible to edit vector drawings made in Flash (and in the FLA's library) within Actionscript? For instance, to change the line width or line color?
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 have an application that creates a chart dynamically. This chart has a lot of information plotted on it (4-6 stock trends). I want to be able to toggle some of those lines with a button. Each trend is drawn with something like this:
Code: // establish a new Vector object for the commands parameter var line_commands:Vector.<int> = new Vector.<int>(); line_commands.push(1,2,2,2); // establish a new Vector object for the data parameter var line_coord:Vector.<Number> = new Vector.<Number>(); // use the Vector array push() method to add a set of coordinate pairs line_coord.push(0,0, 75,50, 100,0, 125,50); graphics.drawPath(line_commands, line_coord);
How would I toggle the line I just drew? My first idea would be to put some of this code inside a function and redraw the line with the same color of the movie's background color. I don't know if this is the best option, I was wondering if I could draw this line inside a Sprite or Movie Clip and just toggle its visibility?
I have a drawn sprite- a sine wave to be exact, which is behind a layers of dynamic masks. i need to have this wave shown in different color ranges as per the amplitude.
this wave updates dynamically based on values so am trying to use something like blend mode or transparency to set the color range instead of computing it which will make it an expensive process.
how can i color different parts of the wave based on its height/amplitude range?
Is it possible to access the graphics.* - characteristics of objects that I have drawn at authoring-time at runtime? If I have drawn a single line in a movieclip I'd like to do sth like this:
I am trying to draw a line from x1, y1 to x2,y2 and i want it to be a line that repeats a pattern from an image. All I can see is that you can only draw lines and change their color or thickness but I would like it to repeat an image. Is that possible or do i have to use a really long and thin rectangle with a bitmap fill?The problem is I am making a game where the user will be able to actually draw the line so i have to make it be created dynamically. The game fantastic contraption [URL] has in the game a feature where you draw lines of any length and position that are filed with a picture.
I have been busy building the UI for a class file I wrote a while ago.
The problem I have is in referencing the symbols on the TimeLine. All the symbols have an instance name, and only exist in the first frame (main timeline has only one frame anyway).
At the moment I am instantiating my AS3 class file from a timeline layer using[code]...
I have a problem that I have not found a syntax error or logic error to explain. It appears to be an obscure problem related to playing a sound file and graphic positioning in the same file. My next step is to look for any known bugs. I have posted the file at. URL] When the page loads you will see a list of selections. Do not click any of the html Play buttons In the graphic arrow pointing to the right is the play button click it and a default file will start. Click the pause button (which will be green while the selection plays) Then click the play button again. The knob that moves while the song plays, will begin moving from the position it was at the time pause was clicked.
Click the stop button (arrow facing left with vertical line at tip) Choose a selection from the html list by clicking the Play button next to it. Then click the play button in the player display. The title of selection will appear in the title area. repeat the original steps (play, pause, play) This time the knob that moves while song plays, snaps back to the start and moves from start, rather than from the pausedposition.
I have created a class, call it Class1, that has various objects drawn on the stage (drawn in the IDE). It also has a function, called setColour, for changing the colour of those objects. The function works fine if I call it from within Class1.
Now I have another class, call it testClass1, that imports Class1 and calls the setColour function. First of all, none of the stage objects from Class1 are visible. Secondly, when setColour tries to modify the colour of an object, I get the error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
I'm still in the process of completely moving from AS2 to AS3 and I felt confident how to do this in AS2 but AS3 is much slower to work with. I'm generally ok with all the syntax changes but I'd continued to put all the code into my FLA and not multiple classes. The primary reason for this has been because I still need to visually design how parts work and use that repeatedly in different pages and sections (and for web projects the big files are all images and data which I load externally anyway). Yet as projects get bigger and we have multiple team members we need to break it all up.
So I'm taking a simple use case of a button. I want to reuse one button style with a number of different states and functions contained within it. It has some methods I can use to pass it a new title or set properties like whether it is Active or Inactive, Selectable or Visitable and all of those properties define different responses when events occur. All that code lives in a class, but that's linked to graphics within a movieClip that are designed through the Authoring tool (visually not code). Thus I have a final button.swfHow then do I reuse that Button across other pages (in different FLAs) that are designed in the Authoring tool and where I can update the button without updating all of the finally composed SWFs of those pages. Using a shared library asset slightly makes sense but that still requires recompiling the project each time and does that bring through it's linked classes too?
It doesn't seem right to need to load in the button.swf repeatedly, shouldn't I be able to load it in once and then it's available to the whole application to just initiate it as I want it, eg. button1:myButton=new MyButton() , and set it's properties each time.Also I can envisage that since I'm doing this in AS3 I'll get errors because I want to instantiate something that a parent SWF is loading in. Then the issue I struggle to understand how to deal for AS3 is how to tell the buttons to target a _root function with individual parameters that I set in it upon creation
I'm trying to find a good way to use TweenMax and flash's drawing class together, but it always bogs down and crashes the flash player, and I can't really figure out what's going wrong. Really all I want to do is make sure that when two (or more) circles, connected by a line, move, that the line between them follows. This is my code:
[Code]...
Is there a better way to do this? Should I not be using a tweening library?
Today i tried to attach a movieclip using AS3, but i wanted to make the positioning inside the class.
And i obtained an error: First file(Document class)
PHP Code:
package { import test; import flash.display.*;
[Code].....
At sequence mc.q=Math.random()*100; in the trace from test.as it displays 'NaN'. How can I modify the value of 'q' (public variable) via instance? If i use a function like mc.setCoords(x,y) the script works fine.
Im just learning classes and objects.... and read that a movie clip is (or has) a movie clip class... So I'd figure that buttons and graphic symbols also are classes? If yes, why are they called 'symbols' instead of 'classes' by Flash dialog?
I have created some code that creates a blue circle of random size on the stage, and startmoving it in a random direction, at a random speed.
But I'd like to create this as a static class, so that I can just import into a banner and make multiple instances appear at a time, but my limited knowledge doesn't allow me to
Here is my code:
Code:
var child:Shape = new Shape() var childSpeedX:Number = Math.random() var childSpeedY:Number = Math.random() var childDirectionX:Number = Math.random()
My application has a lot of dynamically loaded shapes... Now i am working on an interface to change the color properties of each Sprite. The first idea was a simple colorTransform. But afaik this only allows for transforming the existing colors. I also want to be able to define a NEW fill, i.e. GradientType.LINEAR / RADIAL.
SOLUTION 1: There may be an undocumented method to retrieve a graphics current points. With that i could loop through this Array with lineTo and redraw the current shape with the new solid / gradient fill.
SOLUTION 2: Create a newSprite with the chosen GradientType, size it by currentSprite.getBounds(); and then use newSprite.mask = currentSprite; to fake my desired fill... However, i am afraid of the impact this creates on the application as there may be more than 200 of these Shapes displayed on stage... overlapping each other.
have some good graphics libraries they can recommend for AS3? Need glass, textures, effects. The more the better.Using Astral but it is limited to 6 skinnable components. Looking more for something for "Advanced Primitives".CodeCanyon has some available, but remember I program for charity. No funds available.
Example: Tooltips that allow you to add a dashed-underline effect to the text. This would be an object that I can add to the project from the library, or reference an .AS file. It would automatically give the button an assortment of special appearance options (like a dashed-underline), and the hovering tooltip.
I drew a line (stepVoltage) in a fla using the graphics class. Once drawn, I want to move it to the right in an update function, but am having trouble. I tride just moving the line with statements like stepVoltage.x = newX; stepVoltage.y = newY; but this didnt work. Then I tried to delete the previous line and draw a new one with a clear () function (see below) but this blocked the next drawn line from showing up.
The code:
var stepVoltage:Shape = new Shape (); stepVoltage.graphics.lineStyle(2,0x000000); addChild (stepVoltage);
I'm have trouble attaching graphics to the stage from a class. I can do it on the timeline but the code doesn't work in a package.[code]this doesn't seem to work even if I import the picture in the package.[code]
So 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.
I have the following code to create a Sprite with a rectangle in it:
container = new Sprite(); container.graphics.beginFill(0x00CCFF, .5); container.graphics.lineStyle(1, 0x00CCFF);[code].......
The only thing is, I'd like the registration point to be in the middle (not the top left corner). Is there a way to set up the registration point in the middle of the rectangle, but still have the position of the rectangle be correct?
i.e. not moved over so that the top left corner of the rectangle is in the "middle" of where I want the rectangle to be...
I was wondering if it possible to write up some AS that will take line paths that you have drawn and convert them into a Path object? For example say you drew a jagged line from left to write, would there be a way to have AS convert that into a Path object.