Solved

this.parentDocument  for actionscript file

Posted on 2011-09-08
10
716 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
 

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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

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…
A Short Story about the Best File Recovery Software – Acronis True Image 2017
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

705 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now