Actionscript 3 :: Interfaces Are Basically Classes For Methods?
Aug 20, 2011
From what I read, interfaces are basically classes for methods, right? If two classes implements the same interface, then they should both have methods described in the interface.
Now, how is this useful? Let's say I want to call foo()
I am much more familiar with Java's semantics of class and interface than with Actionscript semantics, but I have an example of some code that works in Java and doesn't work in Actionscript. This descrepency is a serious problem in that I am trying to code generate my Actionscript value objects from the Java DTOs and unless the semantics are the same, I am in deep trouble.
Here's the code that works in Java and fails to compile in Actionscript:
[Code]...
I don't understand why class B throws a compile error about an incompatible signature for "makeCopy" when clearly interface B extends interface A...thus there is no violation of type or incompatibility. If this is just an Actionscript limitation, can anyone suggest a way to recode?
NOTE: I already tried changing interface B to this and it threw an error in interface B (which work in Java):public interface Ib extends Ia {function makeCopy():Ib;}
What I was told, which sparked my curiosity on this topic:Java gui classes can implement hundreds of Listeners and Callbacks and many books teach you to implement all these interfaces in your gui class. Alternatively, these aspects can be implemented in inner classes, so methods called by that listeners do not get mixed up.'d like to know how to do this in ActionScript, which doesn't have inner classes, but has private classes. But, I don't think I fully realize what inner classes are about, so I'm merely trying to wrap my head around the situation where I would use them to organize a class' methods by their usages.
I'm making a game which loads map .swfs at runtime. The maps will contain graphics and code, which can both vary from map to map. I've decided to make all the maps implement an interface, so they can all be used in the same way by the game. I'm using a .swc to contain the interface, like in this page.
I can get classes to work in the .swc, but not interfaces!
I'm using Flash cs5, and flashdevelop for editing, in AS3. Here's how I've been doing it:
1- create map.fla with a symbol called Map, and a Map.as:
I would like people to be able to change this custom scrollItem class, but as the scroller class has some interaction with this scrollItem class (sets id etc), I have the scrollItem class implement an interface to guarantee the presence of the required methods.This works fine, but only if I keep the type of the scrollingItem class within the scroller class. I would prefer to substitute in the interface type for each scrolling item. However, I cant, as the interface is not a DisplayObject. I can get around this by casting the interface type as a DisplayObject whenever it needs to do DisplayObject type things, but this seems like a hideous hack.
I want to create a game using pure AS in FlashDevelop.
The problem is that there are some methods I want to use, and because I don't like copying/pasting code, i decided to define in classes. Here is an example:
[Code].....
When I hit compile, I get an error like Call to a possibly undefined method distance through a refference with static type Class.
Is there a way in AS 3 to list all classes and their associated methods? Or at least a way to list the methods within a particular class? It seems that it's all so overwhelming and although I'm well versed in Lingo and have a handle on the Lingo dictionary,I feel as though the AS 3 library is dauntingly big.
I have this problem from time to time with AS3 where I extend a Class and then try call methods and variables which are public from the new class but I get errors that method or variable doesn't exist. My IDE recognises the methods and variables though.[code]When I run the script flash hates it. I thought when you extend a class it was supposed to inherit its properties and methods?Does anyone else have these problems? I shouldn't have to cast it as Box. I swear I have this working in a project but cant see the different in setup?
It's not clear to me, where I have to define Classes and Constructor methods. In AS2 it was possible, to define a class "light" by defining a constructor method. In AS3, I read, a class can only be defined in an external AS-file. Is it still possible to use the constructor method inside the Flash-File or do I have to source out all my constructor methods and implement them into real classes into an external AS-File?
my understanding of extending classes is that you gain all the functions and methods of that class thus You could over ride any one of them. How ever I am confused on weather or not you inherit and can over ride private methods of the class you are extending or if you have to have all methods public in an extended class.
I am trying to do an app that requires me to change the behavior of a few native methods and classes of a an application.I want to override methods such as:ExternalInterface.call, ExternalInterface.addCallback, flash.net.navigateToURL in a loaded movie.There are a few ways to do this for example:1. Getting the SWF's bytecode and decompile it. Then change the symbols table with my own class.2. Loading the other movie in my applicationDomain, by doing so, I would be able to rewrite it's own classes.o do (2) what I did was:1. Turn off the "-strict" flag.2. Turn on the "-es" flag.in the compiler and then do something like:
Code: flash.net.navigateToURL = function(u:URLRequest,window:String):void { throw new Error("yay it works");
I have a question about classes. I just learn that static means that functions and/or properties are specifics to a class, but is it a synonym of private? And why statics (not available to any instances?) properties and/or methods can have a public (available anywhere else (timeline)) access modifier? PS: I just start with classes.
I have an application using a class that was originally a MovieClip exported for Actionscript by Flash. I have not been able to figure out how to add new properties to this class.
Imagine I have a game with a base Entity class, with an init method that takes no arguments. Now I have a Wizard class, but I want to pass in 2 parameters, say speed and strength. In AS3 (and I believe Java and C#) I will not be allowed to do this - it is an "incompatible override" because the method signatures won't match. Now I could just make an "initWizard" method instead, but then I have the problem of the init method of each class potentially having different names. I need solutions that work in AS3, Java or C#.
Yesterday I found myself wondering, what is the difference between either having a class with methods that are all static, or simply giving your class the static attribute?
ive been attempting to make a portfolio of my music and art in flash which is basically just 4 scenes that have buttons at the edges which i want to be able to move over and have it animated to look like its scrolling in the direction of the next scene
i broke each screen down into dummy scenes so i could work out problems without ruining a real project and so far (with this forums help) ive been able to create a music screen with on/off buttons and clickable thumbnails for the art screen etc etc so far so good...i even managed to get the buttons working with 3 different 'entry' animations depending on which scene it came from
so yesterday i decided to make the proper project starting with the navigation structure and space for 3 entry anims per scene...i thought i had made everything the same as before but nothing happens when i publish it...the buttons dont work at all
here is the link to the project 'main002' (dummy animations atm) and my previous working dummy nav test as well as a word document showing how its supposed to work (although ive slightly changed the order of the screens now)[URL]..can anyone tell me why its not working but did on the previous test?
this is my first post on this board so go easy on me. i'm having big problems using loadMovie on a project - basically i'm trying to build a flash page that will run in full screen (as part of an exhibition) and will load up other swf files within itself. so there will maybe be a row of buttons along the bottom which load swfs into an area above them.
[Code]...
have spent all day on this with no progress so will be interested to hear your thoughts. when i have tried loading in other swfs into my blank clip much of the code in them as stopped working as well.
I'm trying to create a website that is basically a flash toolbar that directs the user to different HTML pages at the bottom, much like this website here.
[URL]
Do I build the bar in Flash and then the HTML portion in dreamweaver or do I build it all in Flash? Would an iFrame work for this sort of website?
Our company is about to create and distribute (and possibly to sell ) the utility to convert Silverlight apps to its equivalents on Flash.For this purpose we're writing our own AS3-compiler. The compiler for correct work must know how to interact with the classes backed into the FlashPlayer. The Flex Builder solves it by using the playerglobal.swc that is the part of its distribution package.As far as I know we have no right to redistribute the separate playerglobal.swc without the rest of Flex SDK.
And here is the question: Tehnically we're able to learn all the class interfaces defined inside of the playerglobal.swc with the help of e.g. the plugin ExportSWC (shipped for FlashDevelop) and redeclare them inside of our own swc (e.g. named PlayerGlobalInterfaces. swc) or somehow else.It would be enough for the correct work of our AS3-compiler without the need of using playerglobal.swc at all. But I'm not sure would it violate any copyrights or not?
Is there any way to create a sort of interface for variables? In other words to enforce a class to create and use a variable if they implement an interface or subclass something?
I'm reading up on interfaces and to me I don't see the point in using them? I understand they follow a certain structure but I don't see the use of it in real world usage?
Does anybody know a way to apply an Interface to ObjectProxy, so that you don't have to declare the Interface implementations within the proxy?In other words, if the purpose of ObjectProxy is to proxy the Object in question (passing requests for properties and methods silently to the embedded Object), is it possible to tell the interface "hey, the functions you are looking for are already proxied, so don't bug me about them!"[code]But the function declarations kinda defeat the purpose of using ObjectProxy to begin with... I'd like the Interface to just "know" that "nemesis" is managed by the proxy, but still use the Interface for displaying context-help.which is how to code the context help so people using my MeatwadProxy will see context-help for the Meatwad class it contains?(And yes, I can already hear DrkStr and ASWC snickering at me in the background for continuing to believe in ActionScripts Proxy class. I also believe in Santa Claus, so there!)
It seems that Actionscript doesnt support defining static functions in interfaces. Whats the reasoning behind this?I think it would be useful to have that ability but I'm sure there must be a reason why its not there.
Should each button get a class and a listener, or should I dump everything into one Object and use e.target.name to figure out what is getting clicked? That way I can just use one listener, but then I won't be able to recycle anything. I could probably work around that though.
I am trying to get a handle on interfaces with AS3 and am kind of at a sticking point. Someone tried to explain them to me using legos¯ and conceptually I get the idea of consistent interaction. Where I seem to get stuck is, I don't really see how the implementation of interfaces¯ accomplishes this.
What's the best way around this problem with interfaces?
public interface ITest { function set testField(test:String):void; }[code]......
Test does have a setter for testField (an implicit one).I don't want to define an explicit one for every single field I have defined in my interface.There doesn't seem to be a way to define getters/setters in interfaces (or the syntax just escapes me).Do I have to do this explicit getter/setter nonsense in order to use interfaces in this way?
Is there any way of being able to use the standard iOS interfaces in Flash CS5? i.e blue title, grey striped background, popup keyboard, standard alert message? etc p.s where would one find example code and tutorials for writing the iphone apps as there seems to be nothing available.