this.parentDocument for actionscript file

hi guys

I have a line like this
var searchString : String = (this.parentDocument as TradeLookUp).parseSearchText();

TradeLookUp is mxml file.

I have an actionscript file CustomLookup

but when i give
var searchString : String = (this.parentDocument as CustomLookup).parseSearchText();
i get an error.
i guess this.parentDocument  works with mxml
any idea whats the solution

thanks

royjaydAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
dgofmanConnect With a Mentor Commented:
You can always find any answer what am I doing in Adobe documentation

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/ClassFactory.html
0
 
dgofmanCommented:
Are you using CustomLookup in your MXML

Can be two problems:
1) parentDocument is not instance of CustomLookup
add one line above trace(parentDocument );
2) in CustomLookup.as file you don't have public function parseSearchText
you can validate by:
var lookup: CustomLookup= this.parentDocument as CustomLookup;
trace(lookup.hasOwnProperty("parseSearchText"));

0
 
royjaydAuthor Commented:
actually i am getting an error  
on this line
var searchString : String = (this.parentDocument as CustomLookup).parseSearchText();
                        

The error is
TypeError: Error #1009: Cannot access a property or method of a null object reference.
0
Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

 
dgofmanCommented:
Did you read what I am suggestion?

replace by

trace("Is CustomLookup=" + this.parentDocument is CustomLookup);
var lookup: CustomLookup= this.parentDocument as CustomLookup;
trace("Is accessible to parseSearchText="+lookup.hasOwnProperty("parseSearchText"));
var searchString : String = lookup.parseSearchText();

0
 
royjaydAuthor Commented:
Hi i tried this and getting this responce in console

trace("Is CustomLookup=" + this.parentDocument is CustomLookup);
false

var lookup: CustomLookup= this.parentDocument as CustomLookup;
trace("Is accessible to parseSearchText="+lookup.hasOwnProperty("parseSearchText"));
getting error here: TypeError: Error #1009: Cannot access a property or method of a null object reference.

var searchString : String = lookup.parseSearchText();

thanks
0
 
dgofmanCommented:
You got answer in first trace. You are customhouse to wrong class. Check what type of parentDocument
0
 
royjaydAuthor Commented:
yeah.Actually this is what i am doing

In CustomLookup.as i am using this code
/**
 * Prepares the datagrid column from dataFieldCollection.
 * */
public function createDataGridColumns () : void {
columns = new Array();
for each (var object : Object in dataFieldCollection){
var col : DataGridColumn = new DataGridColumn();
col.headerText = object.headerText;
col.dataField = object.dataField;
col.width = object.width;
if ( object.dataField != CHECKHBOX ) {
col.itemRenderer = new ClassFactory ( org.ms.views.components.renderers.DataLabelForGrid );
} else {
col.itemRenderer = new ClassFactory ( org.ms.views.components.renderers.SelectCheckBox );
}
columns.push( col );
}
dataGrid.columns = columns;
}



and in DataLabelForGrid.mxml  i have

<?xml version="1.0" encoding="utf-8"?>
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml">
      
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.core.Application;
import org.ms.views.components.CustomLookup;
override public function set data ( value : Object ) : void {
super.data = value;
var strData : String = value as String;                        
var labelString : String = value[DataGridListData(listData).dataField] as String;
trace("parent doc=" + this.parentDocument);  
//here i want this.parentDocument to  be CustomLookup
Any idea how i can make this.parentDocument as CustomLookup ?

if (searchString.text = "jay") {
this.setStyle( "color", "yellow" );
}  
}
]]>
</mx:Script>
</mx:Label>
0
 
dgofmanCommented:
In DataLabelForGrid.mxml create public variable

public var lookup:CustomLookup;

Now modify you CustomLookup.as

if ( object.dataField != CHECKHBOX ) {
var cf:ClassFactory = new ClassFactory ( org.ms.views.components.renderers.DataLabelForGrid );
cf.properties = {lookup:this};
col.itemRenderer = cf;
} else {


That should assign lookup variable during constractor

now you can use  "lookup" variable  in your DataLabelForGrid.mxml

I didn't compile but should work
0
 
royjaydAuthor Commented:
nice, but i did not understand how it works :)
cf.properties = {lookup:this};  what does this line do ?

>>That should assign lookup variable during constractor
so lookup is assigned to CustomLookup in constructor of CustomLookup ?

thanks
0
 
royjaydAuthor Commented:
THANKS!
0
All Courses

From novice to tech pro — start learning today.