Flex has a rule of one public class per
file, so you’re going to need to factor each class into into its own
file. Then make sure you declare the functions that don’t need an instance
of the class static and refer to them as class.func()
Matt
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