Firebug :: Use The Function GetDefinitionByName, Which Comes With Flash.utils?
Jul 11, 2011
I have just bought FlashFirebug Pro, so I am able to run ActionScript at runtime.I would like to use the function getDefinitionByName, which comes with flash.utils.i get an error, when I import flash.utils.getDefinitionByName.
I have Flex 4.5 and in the main application, in the script tag I write:
import ominds.Firebug;
I use flash player WIN 10,1,85,3 Debug enabled. I export swf as 10.1.85 version.
And when I open the flashFirebug I get this: "No SWF files with the O-Minds package found, you should import the O-Minds package into your flash files. For more information visit: o-minds.com/products/flashfirebug"
I'm using Base64Encoder in a project that is within the adobe ide. Im having issues with compiling the mx package , well it seems to compile but I get missing stuff at runtime namely the base encoder stuff.I know that mx package isnt suppose to be used with flash but I dont really see why not its all actionscript at the end of the day?Its a swc lib by the way and im using cs4 fp10
There is a client - server basic application. The client uses a simple remoting to comunicate with the server side. The server side could be powered on WebORB, BlazeDS or any other product. The client side is using the FLEX framework. That is it about a technologies stack. Now, let's forget about the server side and just have a look on the following client side
I have a bunch of graphics assets in a fla, the MovieClips are linked to some classes. I export the fla as a swc , which I add to my library with the option "Merged into Code".All works great, I can create instances of my MovieClips , just by calling their classes like this.
example 1 var newMc:BaseClass = new GraphicAsset();
Now if I want do the following , Flash throws an error , GraphicsAssetClass is null!
//example 2 var GraphicsAssetClass:Class = getDefinitionByName("GraphicAsset") as Class;
The only way I can get the above line to work is to do this
//example 3 var newMc:GraphicAsset; var GraphicsAssetClass:Class = getDefinitionByName("GraphicAsset") as Class;[code]....
where I could simply get the class by calling getDefinitionByName()like I do on example 2 , without having to resort to example 3 solution.
I'm having a new problem today- referring to arrays with getDefinitionByName. Anyways, in my map editor, I will have two layers of objects, and the user is responsible for choosing which layer of the map to write to. Because of this, I won't know the exact name of the array to write to until I piece together the string "map0Layer" and selectedLayer (chosen by the user):
Code: var targetString: String = "map0Layer"+selectedLayer; var mapTarget = getDefinitionByName(targetString) as Array; trace(mapTarget);
Through this, I'd like to refer to an array, but every variation of the above code I've tried resulted in ReferenceError: Error #1065: Variable map0Layer1 is not defined. (This is subject to change because it could be "map0Layer2" as well, but you get the idea.)
I use firebug a lot for my work. Recetnly I have begun to start embedding swfs into html pages, and they don't always work (no!) - debugging can be quite a slow process.
Is there a way I can use firebug to peer inside my swf - often the errors are stupid like pulling in assets with incorrect urls. Perhaps someone could recommend a firebug extension?
<script> function cargar(url){ var iframe = $('<iframe>');[code]....
That generates an iframe (containing a panorama viewer with JavaScript and Flash) and inserts it in a div.The thing is that this code, in local, Firebug jumps:
Elemento referenciado por ID/NAME en el ámbito global. Use el estándar del W3C document.getElementById() en su lugar.Element referenced by ID / NAME in global scope. Use the W3C standard document.getElementById () instead.And online it doesn't jump any error or warning but the script doesn't fully work: http:[url]... (the controls are missing and the autoplay is not ON)
In my machine I have installed only Adobe Flash CS5 proffesional trial version. Now this installation is not supporting adobe.utils.Extension class in this version. I have tried with all latest updates from adobe site. My doubt is does adobe.utils.Extension class is available in licensed version of Adobe Flash CS5 proffesional?
I am trying to load a game but it doesn't. There is no messgae in firebug so does that mean you only get certain error messages not all? Obviously in the flash .Is there a better debugging tool for online swfs like monster...
why the getDefinitionByName function works with "com.foo.Bar" and gives error with "com.foo.Rab"?My only clue is that the class com.foo.Bar was created before importing the project to Flash Builder 4.5 for PHP (4.5.1 namely).
My question is very specific, in fact you could try for yourself if you had FB4.5.1, a prior version of the same program, and a lot of time. Obviously I'm hoping to find someone who have experienced this particular issue or any related issue with similar functions.
I'm trying to create a simple utils class that I can use the methods of but not instantiate:[code]Ideally I would import the class then call the center function like this: Arrange.center(object);[code]
I have the following scenarie in a multi-swf game:swf A loads an external swf B that loads a number of swf-assets.ApplicationDomain is set to ApplicationDomain.currentDomain.When I run swf B alone it can use getDefinitionByName on the loaded swf-assets to create instances of these. That all good.When I run swf A that loads swf B - swf B cannot use getDefinitionByName on its loaded swf-assets. Any ideas why this happens?
I'm also not sure if once the swf-assets are loaded using swf B would I then be able to do the following afterwards:swf A loads swf C (a different swf) and then instanciate the swf-assets loaded using swf B. I would like to have some kind of AssetManager that remembers every swf-asset loaded, so that I can easily re-instanciate assets in other parts of the game if needed instead of reloading these again and again?
I am currently working on a project that will load a swc, inspect it and allow the user to view the classes inside.I load the library.swf using Loader.loadBytes (the bytes come from the unzip library I use). I create an instance of the class using getDefinitionByName.This all works fine as long as getDefinitionByName is called on the next frame. If I call it straight away I get a reference error. To get round this I've come up with a rather hacky solution:
I really don't like using the enter frame event on the top level application. I also don't want to have to set up a timer. That's just as nasty.Loader.loadBytes doesn't fire a complete event so I don't know where I listen for an event for when the bytes have been fully loaded into the ApplicationDomain.
Can somebody explain what is the difference between getDefinitionByName and getDefinition inA AS3?When I load an external SWF I can't use getDefinitionByName because I get an Error #1065.
But using externalSWF_ContentLoaderInfo.applicationDomain.getDefinition works OK.So, why getDefinitionByName doesn't find the className?I mean, if the definition is inside the applicationDomain of the loaded SWF, why is not in the main SWF too? (I'm using Flex). I can't create new tags so I can't add the tags getDefinition and getDefinitionByName.
I have main application which contains ModuleManager. Different modules are loaded by this application. Both main application and loaded modules use my custom RSL. I need to get Class object in my RSL, which is defined in one of the modules. I'm trying to use getDefinitionByName function, but since my class is not defined in RSL, I get an exception (though module with needed class is loaded). Is it possible to make module classes visible to RSL code and to get the instance of it at runtime without changing project structure?
I am trying to create a library of transition effects. Each transition type or preset is its own class. In the Client/Main class I would like to create the transition type I need based off a static constant, hoping to save myself from having to write a long switch statement to select which type of transition class to instantiate.[code]I am not using the getDefinitionByName utility correctly, what am I missing here? Is there a different way to achieve class instantiation by passing in the name of the class as a string.
In my FLA I have a movieclip in the Library named "ContentPanel1". I have it's Linkage properties to export on first frame - class "ContentPanel1" and base class flash.display.MovieClip.
In my code I'm trying to attach an instance of this movieclip:
Code: var instanceClass:Class = getDefinitionByName("ContentPanel1") as Class; Now, here's the error I get:
I import a class file with path: "src.Objects.Thing" . Later in the code I try to call getDefinitionByName("Thing"). Unfortunately, I get: "1065: Variable Thing is not defined".The way I fixed this was by writing: getDefinitionByName("src.Objects.Thing"). However, this seems like a cumbersome solution. I would really like to be able to exclude the path when calling getDefinitionByName.
why i can't get a class defined by embed a .png file.like this:
[Embed(source = "../assets/level1/liquid4.png")] public var Liquid4:Class;
then in the same class:
var str:String = "Liquid" + 4; var disClass:Class = getDefinitionByName(str) as Class; addChild(new disClass() as DisplayObject);
there is nothing shows up and no error report.the program seems stoped at the getDefinitionByName line.what could be the problem,and how to get a style like this when i have multiple embeded image to go over.I learned that getDefinitionByName needs the class name as its parameters.which is not Liquid4,Liquid4 is just a varialbe that hold the reference to the actual class object.Well i did get things work,but there is another problem:
-I'm using FlashDevelop as my IDE environment,the root folder "scr" which has "Main.as" and "Preloader.as" class in it.when i test my class uint which Embeded the Fluid4 Class,it works,everyone is happy.but later i decided to move it to a separate folder under the root "src" folder.things get ugly,and error shows up indicating "can't find the class",The Embed picture class.but then i moved it out the subfoler ,everyThing works again fine.
--------------------------------------- [Embed(source = "../assets/level1/liquid4.png")] public var Liquid4:Class; then in the same class: //This gives us the actual class name
[code].....
This did work,but only in the "src" source file folder,not a sub folder of it.I checked this phenomenon many many times,and did use a tiny snippet program to prove it.It just doesn't work in the subfolder of "scr" root folder.
I've recently inherited an AIR project, which is basically a widget that displays product images and static content (contact details etc) on the desktop.The original project was developed in CS4/AS3, and has been published and works fine. Since then, the original developer has gone overseas and I've been hired to make new versions of this widget, UI reskins, different products, etc. I work in CS3, so I've had the original Flash authoring file saved down, gotten Flash CS3 to be able to publish for the AIR runtime, and found the relevant AIR classes that I need. This has all gone smoothly.
The problem I'm having, is that there seems to be some strange way that the original developer has linked the library items to their relevant classes, and I'm trying to unravel this.I'm going to use the clip called windowApplication as my example.In the library, there is a movie clip symbol called 'windowApplication'. In its linkage settings, its class is set to 'windowApplication', and its base class 'com.aca.windows.Application'.The Application class extends the MovieClip class.However, when I test the app, I get compiler errors
'5000: The class 'com.aca.windows.Application' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.' '1151: A conflict exists with definition SectionBackground in namespace internal.' (SectionBackground is the first variable declaration in the Application class. Commenting it out makes this error change to the second variable declaration).
I can remove this error by changing the class of the 'windowApplication' symbol to 'Application' and setting the base class to 'flash.display.MovieClip', however that doesn't seem to instantiate the class properly. The symbol appears onscreen, but none of its instantiating functions are called.
The windowApplication object is instantiated using a getDefinitionByName call. I've had a google and looked around various forums, and I've seen suggestions that classes used in getDefinitionByName need to also have a fake instantiation so that they're compiled in Flash. I've tried this but it makes no difference.It seems to me that the getDefinitionByName call is working properly, as it does bring up the correct symbol - but only when the base class is flash.display.MovieClip.
I had another movie clip, called sectionMain, that also had this problem. Its original class was 'sectionMain' and its base class is 'com.aca.sections.Main'. It, too, threw a compiler error 5000. I changed the symbol's class to 'Main' and the base class to 'flash.display.MovieClip', when testing the app, this brought up the symbol. When I changed it back to the original settings, it worked fine, the object was called properly and I could interact with it. However, when the errors with the Application class are thrown, I also get the 5000 error for the Main class - without having changed anything.When I change the class of the windowApplication symbol to 'Application' instead of 'windowApplication', I get a warning that Flash can't find the class and will create one at runtime.