ActionScript 3.0 :: Reposition A Textfield From An Imported Class?
Nov 29, 2009
My project imports a custom class with a function called at runtime that creates a textField.
I want to be able to change the x and y coordinates of this textField [tf.x and tf.y in the class] from within the parent movie (not the class itself) but am having trouble.[code]...
I'm just now learning the new object oriented way of scripting. It's been a wild ride, but I've finally learned how to keep script off my frames (very hard coming from as2).Here's my problem:
I have a TextField on the stage in my main .fla file named loadPercent.
I'm loading a jpg with preLoad.as and displaying the bytes loaded in loadPercent.
I can access my loadPercent TextField from my MainClass
I get three '#1120 access of undefined propery' errors for each time i try to access loadPercent.
a few basic questions: 1. all my files are in a folder in my documents, not in the flash directory, is this bad? I've seen people using com.whatever etc.
2. my main .fla file does not share the same name as my MainClass.as (it's not named MainClass.fla) Is that a problem?
I'm assuming these are inconsequential because my code seems to work up to a certain point.
I've been sorting through the XML docs and i've bumped my head into a bit of a question. So, to preface, I have been able to load the XML successfully, but I want to be able to use my own XML loader class to load the XML and then be able to reference it from the document class. Also, I'd like to be able to send a file path to the loader class when I call it.
My following document class is working fine. But, when I want to import it instead of using as a document class, it reports an error "1067: Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject.". My class code is here:
package{ import flash.display.Sprite; import flash.display.Shape; import flash.text.TextField; import flash.events.MouseEvent; public class Shapes extends Sprite { var square: Sprite = new Sprite(); var txt: TextField = new TextField(); public
mainClass.as package { import mfClass.CarSelector; import flash.display.MovieClip; import flash.events.Event; public class MainClass extends MovieClip { [Code] .....
Now, when I run this in flash. I get this message.. in output. TypeError: Error #1006: sel_Fun is not a function. at MainClass/show_selector() at MainClass()
I have imported a SWC into my actionscript project. It includes many different movieclips that I can access in my project. My question is this: How can I create a custom AS3 class that I can use to add functions and properties to my movieclips?
For example I have a movieclip with a linkage name of LevelButton. I tried creating a class that was the same name but they didn't seem to go together.
I have an on enter frame listener defined in a function: Code: function sideClicked(e:MouseEvent):void { removeEventListener(Event.ENTER_FRAME, loop); var targetName=e.target.name; var a:Array=[];[Code] .....
The looptoposition() function simple calls a function from a custom class repetitively to move an object until it reaches its position. This is the function it calls from the included custom class: Code: public function rotateToPos(a:Number,b:Number,c:Number):void { if(!cubeReady){return;} if(cube.rotationY<b){ cube.rotationY+=3; [Code] .....
This gets the desired result visually - the cube rotates until the chosen point and then stops - however the listener continues. I have two problems: 1) I would like to remove the listener but can't seem to do so from the imported class - I'm having trouble referencing my functions in the root flash file. 2) I also need to declare that the function has completed - but the equalities mean that b is either greater or less than but never equal to? Whats a better way of getting the cube to rotate to a set position on each frame? The reason for the equalities are the cube can turn two different directions. So rotation could be negative.
I stumbled upon this while trying to customize the tree component following the example on the LiveDocs, see [URL].. To see the problem, do the following:
PART 1: 1) create an empty test.fla file 2) put a tree component on the stage 3) convert it to a symbol named TreeNavMenu, export for Actionscript as TreeNavMenu
This is probably ueber basic, but I don't know how to do it. I am importing tweenlite on the root timeline like this: import gs.TweenLite;
I now want animate things in other MCs. I tried something like this, but it did not seem to work.parent.TweenLite.to(text1, 3, {_alpha:100, overwrite:0});
I'm trying to make methods available like so: ActionScript Code: MyClass.myFunc(); Instead of ActionScript Code: var myVar:MyClass = new MyClass(); myVar.myFunc();
I know that to do so I need to declare the functions/variables/constants as static: ActionScript Code: package MyPackage { public class MyClass extends Object { public static function myFunc():void { } public function MyClass() { [Code] .....
When I try to access the static function through the full reference (i.e trace(MyPackage.MyClass.myFunc);), it works, while trace(MyClass.myFunc); returns undefined. This contradicts what I've read in tutorials and posts on the Internet. They all use the short syntax, not the full path.
I tried to search for this but the search wasn't working. I have a loder class where i load in some xml. This is the function that's called after the xml is loaded[code]...
The xml traces out fine. My question is how do I define var xml so that I can access it from outside of the class in another class or from the timeline?
I have tried to add a button a .fla and code it with a packaged class (Main.as).is it possible to use a button from the GUI and code it with a external imported packaged class?
I am getting a 1009 error using tweenlite. I have placed the COM folder of tweenlite in the same directory as the FLA. On the main stage I have imported the tweenlite class using: Code: import com.greensock.*; import com.greensock.easing.*;
On the main stage I have a MC called mainholdermc. When I click a button called mentions but on the main stage it basically tells mainholdermc to play. This works well. I have another movieclip called vosdes. At the same time that mainholdermc plays I want to use tweenlite to make the aplha of vosdes lower. If I put this actionscript on the main page it works fine: Code: mentionsbut.addEventListener(MouseEvent.CLICK, mainholder); function mainholder(event:MouseEvent):void { mainholdermc.gotoAndPlay(2); TweenLite.to(vosdes, 0.4, {alpha:0.1}); }
The problem is that I want to move the tweenlite command to within the the vosdes movieclip. So within the vosdes movieclip I have this written in the actionscript: Code: import com.greensock.*; import com.greensock.easing.* TweenLite.to(this.vosdes, 0.4, {alpha:0.1});
I found that by using Code: this.MC_NAME it is the equivalent of the _root in AS2.
However this is not working. When I compile the FLA no errors occur until I click on the mentionsbut and I get the following error: Code: TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.greensock::TweenLite/init() at com.greensock::TweenLite/renderTime() at com.greensock.core::SimpleTimeline/renderTime() at com.greensock::TweenLite$/updateAll() [Code] .....
Ok, this is one of those walls that I know once I can jump over it, I will be a much happier developer again.
I've done tons of reading, and think I have a firm understanding that the general consensus is that if you want to reference something, it needs to be added to the display list, using addChild().
I hate to be defiant, but what if I don't want to?
Or at the very least, what if I want to add a movieclip class to the stage using addChild, and then reference objects inside it?
It is much easier this way than what most people recommend - adding 15 objects via addChild, then setting the x and y for the, etc.
That said, I'm all about using classes and using as3 the way it was meant to be used. So what this is, is a best practices question I guess.
HERE ARE THE STEPS I'M TRYING:
- Create new flash document
- Draw graphic symbol bg, with text field over it, select them, convert to movieclip symbol, and export class name "box", then delete it from stage
- Add document class .as file, which simply adds that class "box" from the library, to the display list using a simple addChild()
- Set a name for that box using box.name = "test" let's say
- Do a simple trace like the following - "getChildByName('test').textFieldName" - it shows up great
- So then, I'll now try to set the text by doing this - getChildByName('test').textFieldName.text = "yo";
That last line above, is what doesn't work. I know I'm referencing wrong, but how would a pro as3 developer, reference something on the stage within a movieclip class, from the document class?
i have made a site in flash cs3, with various things repositioning on screen resize, and everything works wonderfully, until i have checked it on a mac, on which everything's offsetted to the left. i thought that flash acted the same way on any platform (on all browsers in windows it does look great), but.just for some reference, this is the resize function (sorry for the length, i dont have a clue what's valuable and what aint):
Code: function resizeHandler(Event):void { if (stage.stageHeight>=400) {
I'm trying to resize and reposition 'geschenke' which is a movie clip ... when you rollover the buttons a number will come out but since I resized the mc the positioning is off. How can I rewrite/use this code no matter what size the mc ends up being the positioning will scale with the stage.
this.createEmptyMovieClip("numbers", getNextHighestDepth()); for (i in geschenke){ zahl = Number(substring(geschenke[i]._name, 7, 8)); nummer = numbers.attachMovie("numbering", "numbering" + zahl, zahl); nummer.stop(); [Code] .....
Is it possible to reposition the blinker in a text box?
I have a text box and the user can press a key to add a specific string and I've already done that. The problem is the blinker ends up between whatever the user typed and the new string, so they have to move the blinker to the end before resuming typing which is, needless to say, very annoying.
I was wondering if there was any sort of actionscript that can check and/or modify the position of the blinker.
Something like:
Code: on (keyPress "*") { //Move blinker to the end of the textbox here }
I am trying to reposition a flash element.Go to [url].....I would like the badge and the cup in the center to be centered in the blue flash background.I would like the blue flash background to be transparent, so the web page can showup around the badge.How can I do this? I have attached the .fla and .swf.
EDIT-I was able to reposiiton the element, not sure why what I did earleir did not work. Still need to know how to have a transparent background on the flash.
I have a game: The object circled is the amount of shots you have left. But it removes the last object in the array, so the last bullet, its hard to explain, I have 20 bullets, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20. The array is removing the 1 first. Well what I am saying is number 1 is actually number 20, so the array is doing nothing wrong, I did. But I am not sure how to reverse the order.
So [ its removing this one-> o o o o o o o o o o o o o o o o o o o] But [ --------------------------------- o o o o o o o o o o o o o o o o o o o <- I want it to remove this one]
The reason being is because the user cannot see how many they have left, so think angry birds, the amount of birds is displayed according to the amount there allowed, its to the left of the slingshot, like mine, every time the bird is shot, the rest of the birds shimmey towards the slingshot untill there is none left --- This is what I want, but have managed to confuse myself aswell as you most likely.
Here is my code, to generate and take awau my bullets/birds public function createShotIcons() { shotIcons = new Array(); for(var i:uint=0;i<20;i++) { var newShot:ShotIcon = new ShotIcon(); newShot.x = 200-i*15; newShot.y = 300; addChild(newShot); shotIcons.push(newShot); }} public function removeShotIcon() { removeChild(shotIcons.pop()); }
This is hard to explain, so bear with me... I'm creating "pages" of draggable buttons so that I can reorder them according to their revised positions. Everything works great but I'm stumped as to how to drag the buttons forward or backward a page based on the current active page. If you look at the file you'll see exactly what I mean. I have a portion of the code commented out because that's the area I'm stuck on.
All the MC's are created on the initial load, with each additional page appearing "off the screen" by an adding 1000 pixels per page (in the X direction). Then I just reposition all the MC's as the pages are scrolled through.
What I really want to do is drag a button to the edge of the screen and have all the MC's move that represent the appropriate page. I think I need some sort of timer there or it just flies to the last page.
FYI, if you change the variable "TotalVBs" it will modify the number of displayed buttons. If you change the variable "myButtonScale" it will modify the scale of the buttons. Increasing either or both of these will add more pages to the program. [code]...
I'm currently building an application that allows users to "import" uploaded images into the FUI and move them around to place them where they want. I have three seperate sections where they can do this and each section has a different maxWidth and maxHeight... What I'm trying to accomplich is to be able dynamically bring the image in resize it so that it fits within the _root.maxWidth and _root.maxHeight, while constraining the proportions, THEN I need it to be be placed (if needed) within the boundry of the section they are importing the image to...
I'm grabbing the image via the tree component and continuing from there... here is my code.
I am using CS4. I have my Flash all setup and running perfect now w/ motion tweens etc.But I am trying to reposition some of my symbols on the stage (to get them into better alignment with other symbols), and every time I do this the move is recorded, and when I play back it shows the motion of my position change on my tween.Is there a way to simply move my symbols w/out losing their current tween, but not creating a new motion effect?
Im currently designing a map with a drag and drop action as well as a zoom in and out with the mouse wheel, my problem is that when i drag and drop my image and then go to zoom in or out the image will automatically reposition itself back to the center, im wanting to be able to drag the image which is converted to a MC anywhere in my masked box then zoom in and out on that area that is shown is the masked box,
how to reposition an icon inside a button on any x,y cordinates . i know how to use labelplacement etc but still i dont get the full control over them. i m just wondering if there is a way to directly access and control the x,y position of an icon in a flex button
using the following code i am trying to get a movieclip to reposition itself prior to loading an image. Then once the new image is loaded - the other movieclip will reposition itself. Currently, the functions are cancelling each other out - b/c the one function is within an onEnterFrame - take a look:
As you can see - i have a button with an onRelease command telling the movieclip to reposition - then onEnterFrame once the file is fully loaded the movieclip should return. The problem with this is that it does not allow the movieclip to move for the onRelease b/c the onEnterFrame is saying to go to the other position. If i add the delete this.onEnterFrame the movieclip - on future loads will reposition for the onRelease fuction but will not return.
There seems to be just one problem I cant get around. Its a full screen flash site so when the browser gets resized, it looks all weird until you refresh the browser. I think it would be too hard to make a function to reposition all of my movieclips when the onResize event gets triggered so I figured it may just be easier to restart the flash movie from the start when it gets triggered, how could I refresh the movie, or possibly even refresh the browser? here is the site so you can see what I am talkin about [URL]