How so?  A library isn't one file.

You should package everything up by making a manifest file so that you
can use your classes as MXML tags, and then use compc.exe to bundle a
SWC.  You can also bundle in additional stuff like icons and CSS and
whatnot.

Its a much more efficient distribution and packaging mechanism!

-Roger

Roger Gonzalez
mailto:[EMAIL PROTECTED]
 

> -----Original Message-----
> From: flexcoders@yahoogroups.com 
> [mailto:[EMAIL PROTECTED] On Behalf Of Greg Johnson
> Sent: Tuesday, November 01, 2005 8:05 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Flex 2:Package/Class problem
> 
> Hmm, well that pokes a hole in that plan.  If I have to create a 
> bunch of different files it kinda is contrary to my goal of combining 
> things into one main generic library :(
> 
> --- In flexcoders@yahoogroups.com, "Geoffrey Williams" <[EMAIL PROTECTED]> 
> wrote:
> >
> > You can only have one public function / class / prop per .as file. 
> Also, the
> > .as files name must match that of the function / class / prop.
> > 
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com 
> [mailto:[EMAIL PROTECTED] On
> > Behalf Of Greg Johnson
> > Sent: Tuesday, November 01, 2005 9:43 AM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] Flex 2:Package/Class problem
> > 
> > I am tryinig to create a class with functions that I use repeatedly 
> > so I can just include them in different components/applications.  
> As 
> > far as I can tell I have written it correctly, but when I use an 
> > include, and they try calling one of the functions, it doesn't work.
> > 
> > Here is the package
> > package mrstd{
> >     // Imported Libraries
> >     import mx.managers.PopUpManager;
> >     import mx.containers.TitleWindow;
> >     import mx.controls.gridclasses.DataGridColumn;
> >     import mx.managers.DragManager;
> >     import mx.events.DragEvent;
> >     import mx.formatters.*
> >     import flash.util.Timer;
> > 
> >     // Standard Library Class
> >     public class stdlib {
> >             // Does what it says, used when a function has to be 
> > called, but you don't actually want to do anything
> >             public function doNothing():Void {}             
> > 
> >             // Get Today's Date as a string
> >             public function getToday():String {
> >                     var today_date:Date = new Date();
> >                     var date_str:String = ((today_date.getMonth()
> > +1)+"/"+today_date.getDate()+"/"+today_date.getFullYear());
> >                     return date_str;
> >             }
> >     }
> >     
> >     // Mouse Related Functions
> >     public class mouseHandlers {
> >             // Handles drag and drop events.
> >             public function doDragDrop(event:DragEvent):Void {
> >                     private var items:Array = 
> > event.dragSource.dataForFormat("items");
> >                     private var dest:Object = event.currentTarget;
> >                     private var dropLoc:int = dest.getDropLocation
> > ();
> >                     dest.hideDropFeedback(event);
> >                     items.reverse();
> >                     var l:int = items.length;
> >                     for(var i:int = 0; i < l; i++) {
> >                             dest.dataProvider.addItemAt(items[i], 
> > dropLoc);
> >                     }
> >                     event.preventDefault();
> >             }               
> > 
> >             // Variables used for detectDoubleClick function
> >             private var lastClick:int = 0;
> >             private var lastObject:Object = new Object();;
> >             private var lastIndex:int = 0;
> >             private var maxTicks:int = 300;
> > 
> >             // Detect if a double click was made and if so, call 
> > a function
> >             public function detectDoubleClick(event:Object, 
> > functionToCall:Function, ... args):Void {
> >                     var currentClick:int;
> >                     var currentObject:Object;
> >                     var currentIndex:int;
> >                     var clickDif:int;
> >                     currentClick = getTimer();
> >                     currentObject = event.target;
> >                     currentIndex = event.index;
> >                     clickDif = currentClick - lastClick;    
> >                     if( clickDif <= maxTicks && currentObject == 
> > lastObject && currentIndex == lastIndex ) {
> >                             lastClick = currentClick;
> >                             lastObject = currentObject;
> >                             lastIndex = currentIndex;
> >                             if (args[0] == null) {
> >                                     functionToCall();
> >                             } else {
> >                                     functionToCall(args);
> >                             }
> >                     }
> >                     lastClick = currentClick;
> >                     lastObject = currentObject;
> >                     lastIndex = currentIndex;
> >             }
> >     }
> >     
> >     // Standard Formaters
> >     public class formaters {
> >             private var StdMoneyFormat:CurrencyFormatter = new 
> > CurrencyFormatter();
> >             private var StdDateFormat:DateFormatter = new 
> > DateFormatter();
> >             StdMoneyFormat.precision=2;
> >             // Formats a dataGrid cell as money
> >             public function formatMoney(dpItem:Object, 
> > dgColumn:DataGridColumn):String {
> >                     return StdMoneyFormat.format(dpItem
> > [dgColumn.columnName]);
> >             }
> > 
> >             // Formats a dataGrid cell as a date            
> >             public function formatDate(dpItem:Object, 
> > dgColumn:DataGridColumn):String {
> >                     return StdDateFormat.format(dpItem
> > [dgColumn.columnName]);
> >             }
> > 
> >             // Formats a dataGrid cell as a string that is x 
> > characters long followed by an elipse
> >             public function shortString(dpItem:Object, 
> > dgColumn:DataGridColumn, x:Number):String {
> >                     var tmpString:String;
> >                     tmpString = dpItem[dgColumn.columnName];
> >                     if (tmpString.length > x) {
> >                             tmpString = tmpString.substr(0,x);
> >                             tmpString = tmpString.concat('...');
> >                     }
> >                     return tmpString;
> >             }
> >     }
> > 
> >     // General Error Window Handlers        
> >     public class errHandlers {
> >             // CFC Error Handler Function
> >             public function cfcerr(cfcName:String, 
> > functionName:String, faultCode:String, faultString:String, 
> > description:String, details:String):Void {
> >                     var cfcErrPopUp:cfcError = cfcError
> > (PopUpManager.createPopUp(this, cfcError, true));
> >                     cfcErrPopUp.cfcName.text = cfcName;
> >                     cfcErrPopUp.functionName.text = functionName;
> >                     cfcErrPopUp.faultCode.text = faultCode;
> >                     cfcErrPopUp.faultString.htmlText = 
> > faultString;
> >                     cfcErrPopUp.description.htmlText = 
> > description;
> >                     cfcErrPopUp.detail.htmlText = details;
> >             }
> > 
> >             // Error Handler Function
> >             public function err(message:String, 
> > source:String):Void {
> >                     var errpop:stdErr = stdErr
> > (PopUpManager.createPopUp(this, stdErr, true));
> >                     errpop.source.text = source;
> >                     errpop.message.text = message;
> >             }
> >     }
> > }
> > 
> > In the .as file I put
> > 
> > import mrstd.errHandlers.err;
> > 
> > and then down in the script I make a call to the err function
> > 
> > err("sometext","sometitle");
> > 
> > But I get an error at that line saying "Access of undefined 
> property 
> > err"
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > --
> > Flexcoders Mailing List
> > FAQ: 
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives: http://www.mail-archive.com/flexcoders%
> 40yahoogroups.com 
> > Yahoo! Groups Links
> >
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ------------------------ Yahoo! Groups Sponsor 
> --------------------~--> 
> Get Bzzzy! (real tools to help you find a job). Welcome to 
> the Sweet Life.
> http://us.click.yahoo.com/A77XvD/vlQLAA/TtwFAA/nhFolB/TM
> --------------------------------------------------------------
> ------~-> 
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: 
> http://www.mail-archive.com/flexcoders%40yahoogroups.com 
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Fair play? Video games influencing politics. Click and talk back!
http://us.click.yahoo.com/T8sf5C/tzNLAA/TtwFAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to