Actionscript 3 :: Include External Plain File In Pure Project (packages/classes)?
Jan 13, 2011
I'm building Action Script project in Flash Builder. No flex, no third party libs. Pure actionscript - hierarchy of packages and classes. How do I include a plain external .as file, which is not a package or class, but just a set of statements?
I have a small framework that I would like to put out there. I would love to export these classes as a single file. I know there is a SWC format, but there is not much recent information on how to export build this and I have a feeling this format might be outdated.
I have an actionscript project which uses visual symbols from an SWC. I have a CheckoutButton which has the following class associated with it (compiled into the SWC in Flash CS3).
I am creating a library in AS3. Inside the library I make use of a bunch of classes/packages that need not be exposed to the end user of my lib. I want to only expose one of these classes.
I guess my questions are:
1) How are libraries commonly distributed in AS3?
2) Is there a .jar equivalent in AS3 that developers can include, but will only have access/knowledge of the classes I've declared as public?
I have a Flash movie that loads variables from an external plain text file, that a client updates themselves (from a web site which generates the file). A problem occurred when they used an ampersand symbol in the text field. Is there a way around this? I haven't seen a way to escape it that works.
i have created a plain text files loads from an external file. I am facing one problem which is the text does not load unless someone select the button. I will like the text to show as soon as someone enters the page
//Plain text files loads from an external file var textLoader:URLLoader;function loadStory(evt:MouseEvent):void{ textLoader = new URLLoader();
i have created plain text field and managed to load it from external file using the AS3 code below. Now i want to load multiple text field but this time in a button, how can i do that?
this is my button code: proposal_btn var textLoader:URLLoader = new URLLoader(); textLoader.addEventListener(Event.COMPLETE, textLoaded);
I'm trying to use a ComboBox control in an ActionScript 3.0 Project I've been tasked with making modifications to. I know I need to do import fl.controls.ComboBox; Now, the problem is that if I do this within the (unfamiliar) environment of FlashDevelop, I get an error. My understanding is that adding a control is a matter of feeing FlashDevelop the correct classpath, which I think I've done. Some other websites seem to indicate that if I add the control to my library this problem goes away because the act of putting it in the library links the required resources. So, how can I do the equivalent of adding to an .FLA library within FlashDevelop?
I'm getting crazy because I can't access object NativeWindow in a "ActionScript Mobile Project", no matter what I do stage.nativeWindow is always null when I test on desktop. If I create a new NativeWindow then it's the stage property that is null. Oddly enough accessing stage.NativeWindow works when deploying on blackberry playbook but not when debugging configuration Launch Method on desktop.
Can't answer my own question but it seems the feature is just unsupported on the desktop I guess the workaround is use Stage.Resize when debugging desktop. reference: The window represents the native operating system window; the Stage represents the content contained by the window. This property is only valid for content running in AIR on platforms that support the NativeWindow class. On other platforms, this property will be null. In Flash Player (content running in a browser), this property will also be null.
I created some button states in flash (swc), and I want to use them in a pure AS3 project. They are movie clips with class of neatButton_on and neatButton_off respectively. I call them like this:[code]I've also used assets, especially for different states of the same item, where I've put everything in one movie clip and then switched frames as needed. Is one way faster than the other? is there a best practice?
I'm working on a AS3 project that required a lot of UI, since Flex was used for time-saving for this part we ended up having a Flex Project (UI) and pure AS3 one (All BackEnd) or, in other words, two different .swf files.Currently I can successfully comunicate both of them using a common interface and by loading the UI .swf into the AS3 .swf using a Loader class:
var loader:Loader = new Loader(); var request:URLRequest = new URLRequest("CustomUIModule.swf");
The actual code contains listeners for SystemManagerHandler so Flex doesn't complain.Since we are delivering two different files it is not really practical whenever we release a build of the project. For this case the meta tag [Embed] seems to be a better way to achieve this (With no satisfactory results to date).
With the above information (hopefully I made myself clear enough) what would be the best approach to ultimately generate a single swf? Or how should we properly implement the [Embed] tag for Flex swf?
This has been driving me nuts. I've worked with SWFObject in the past which is great. However I have a requirement not to use JavaScript. So when I try to do flashvars examples all over the net, they don't seem to work for me. Steps to repeat:
1) Create a pure AS3 project using Flex or Flash Builder
2) In the index.html wherever there is a .swf, add a name value pair suffix. test.swf?foo=bar
3) In the constructor of the main class Sprite, trace(root.loaderInfo.parameters.foo).
Expected: bar but traces out as undefined I've tried setTimeout() to evaluate 5 seconds in the future, still doesn't work as if it's not loaded at all.
what the easiest way to play movieclips is using pure AS in classes. Basically, I have a MC instance on the stage with 25 frames and simply want to play it once. Using the play() method causes it to play infinitely, and I can't find any other methods which let me choose the frames i want to play between.
I have a Pure AS3 mobile project that I'm developing in Flex 4.5, and deploying on both Android and iOS.I have a TLF textfield that is set to editable, and when I touch on it on Android the soft keyboard shows up as expected, without me having to explicitly tell it to show up.
BUT on iOS, when I touch on it, I get the text field's focus event firing, but the soft keyboard doesn't show up. Anyone know how to make this appear, so the user can enter in text? it is possible to enter text in a pure AS3 mobile app on iOS.
On the main timeline I have a movie clip ("Sound Full") on it. The movie clip is being used as a complex rollover button for "revealing" a full sound interface. When the mouse rolls over, the word "Sound" fades out and the panel appears. When rolled off, of course it goes in reverse. I've seen it done in many places...including www.iso50.com.
Anyway, on the timeline for "Sound Full", I have three layers being used for the following...
1) Actions 2) An instance of a graphic symbol ("Sound Text") 3) An instance of a movie clip symbol ("Sound Player)
The Actions are a few lines of code to rewind or play based on whether or not the mouse is over the area or not (as learned directly from [url] And for the instances, I just used motion tweens to have "Sound Text" fading out as "Sound Player" fades in. It's like 5 frames in all. Very quick effect.
The timeline for "Sound Player" is only one frame. Each piece of the player has its own layer (play button, stop button, etc.) and the top layer (also reserved for Actions) has a single line of actionscript where I have written:
[code]...
The problem is that when I test the whole movie...the rollover effects works beautifully, but the buttons in the interface aren't clickable or working at all. I discovered that if I simply tested "Sound Player" by itself...it works perfectly, except there's obviously no rollover effect since "Sound Player" is nested inside of the movie "Sound Full" which is what does the effect.
Does this make sense? Hopefully it does. Anyway, so my question is...
1) Am I missing a basic fundamental rule of Flash in order to make it run smoothly?
2) Is the "tweening" of "Sound Player" possibly messing it up? (Remember, I noticed that when the include line for the external actionscript file was in the same frame as the indiv. player buttons it worked fine.
3) Do you need to see the .fla file to help me out?
When I try to include code from the external file "test.as" I get an error: "ActionScript 2.0 class scripts may only define class or interface constructs." "test.as" contains a simple function:
I am using an include file, and I've noticed that sometimes the the fla file does not refresh new changes to my include file. When exporting with "Ctrl, Enter" Is Flash loading the include file from the cache?
I'm new to as3 and although I am able to build classes that don't error but also don't put anything on the stage. I have Starter_1.as file stored in a folder called com...this is the script for that file:
Code: package com { import flash.display.Sprite; import flash.text.TextField; public class Starter_1 extends Sprite { private var tField:TextField; public function Starter_1 () { [Code] .....
From what I can see the problem is because the addChild(tField) is not referencing the stage in anyway because the script is in an external .as file and not on the timeline (good coding practice I read somewhere?) I use this on the timeline to try put the text field on the stage: Code: import com.Starter_1; var f1:Starter_1 = new Starter_1(); How do I get this working?
Say if the structure of my game is set up like this:mainMenu- Classes inside the mainMenu package.instructions- MainMenuButtonClass.- Other classes inside the instructions package.game- MainMenuButtonClass.- Other classes inside the game package.The class MainMenuButtonClass is a button that, when clicked, directs the user to the MaiMenu and is identical in both the instructions package and the game package. Would it make sense just to save the same file in two locations or is there a better way to handle it.I'm not trying to access variables between the two classes. I'm not looking for any code either.
Before starting an class or code, you should put all your import statements..
Now I have flash application, which offers a search feature which relies on some pretty huge classes. The user is unlikely to use this feature. However, importing those classes anyway adds some pretty large kbs to my application. Is there a way to import these classes at runtime ONLY IF the user chooses to use this feature?
I'm trying to re-organize my classes into folders, currently they're all just in the same directory and it's very messy, so I've tested this out in one feature, being the bullets. So bullet.as is in the directory: [main source]/Classes/Turrets/Ammo
I so in the bullet.as file I have coded as follows: Code: package Classes.Turrets.Ammo { import flash.display.MovieClip; import flash.events.* public class Bullet extends MovieClip {
Now this works, the bullet is fired on to the stage, however it behaves profoundly. For some reason it does not move at all or behave how it does when it is fired from the turret object, the bullets behave perfectly though when I just simply put them in the same directory as the source .fla. What can I do to easily re-organize my classes into folders without turning my objects into malfunctioning pieces of junk?
A lot of people have .com websites & put all their classes & packages inside a com folder & then their website name to avoid any possible naming conflicts when using other peoples classes - all very sensible. I have a .co.uk website however - is there an equivelant naming standard?
In AS3, I know how to accomplish this. One needs only to click "ActionScript Settings", and navigate to the SWC file under "SWC Files or Folders Containing SWC Files".
However, when the project is set to AS2, the "Actionscript 2.0 Settings" is a rather sparse menu, and adding the folder as a classpath doesn't seem to work.
When building a Flex library project in Flash Builder 4, setting the Include all Classes flag in the library properties tells the compiler to include all compiled classes into the resulting SWC file. Sometimes this flag gets reset or ignored. The .flexLibProperties file looks like this: