Solved

this.parentDocument  for actionscript file

Posted on 2011-09-08
10
724 Views
Last Modified: 2012-05-12
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

0
Comment
Question by:royjayd
  • 5
  • 5
10 Comments
 
LVL 29

Expert Comment

by:dgofman
ID: 36505973
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
 

Author Comment

by:royjayd
ID: 36506749
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
 
LVL 29

Expert Comment

by:dgofman
ID: 36506794
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
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 

Author Comment

by:royjayd
ID: 36525250
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
 
LVL 29

Expert Comment

by:dgofman
ID: 36525369
You got answer in first trace. You are customhouse to wrong class. Check what type of parentDocument
0
 

Author Comment

by:royjayd
ID: 36525879
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
 
LVL 29

Expert Comment

by:dgofman
ID: 36525933
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
 

Author Comment

by:royjayd
ID: 36526147
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
 
LVL 29

Accepted Solution

by:
dgofman earned 500 total points
ID: 36526285
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
 

Author Comment

by:royjayd
ID: 36529229
THANKS!
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

First things first - Preparation We need all the part for this install and it's much nicer to have them all on hand when you need them so here's what's required. Download Eclipse 3.5 32 bit (I like the Classic flavour) from here. (http://www.e…
Knowing where your website is hosted is as important as the features you receive, the monthly fee, and the support you receive. Due diligence should be done when choosing your next hosting provider.
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question