when debugging flex module application ( shell.swf to load modulea.swf , moduleb.swf ...), some times
Idea showing binding error and open up a noname.as file. and the browser is freezing(especially when you switching to load another module swf at run time) and you need
to wait long time to be able to use IDEA to continue to run. sometime, it's just hang up forever, you have to kill the browser process.
today, i found if you change the framework linkage to (Merged into code), then the debugger is working fine.
i'm using ant build.xml to compile/deploy flex apps using RSL but never use IDEA to compile the
code,maybe that's why it couldn't find class to load (noname.as). anyway, it works fine for me.
UPDATE
change to different flex SDK may also fix the issue
Thursday, August 16, 2012
Monday, July 9, 2012
remove ranorex automation from flex builder
ref: here
Manual Setup of Ranorex Java Plug-In
- First of all close all Ranorex Tools.
- Now you have to determine the path of your active Java runtime Environment to know where to copy the necessary files to. Open the Java Runtime Environment Settings which can be found in 'Java Control Panel' (Control-Panel -> Java). There you can see the path of your Java Runtime Environment. If you have more than one Java Runtime Environment installed on your machine, check which one will be used to execute your Java applications by determining which one is activated.
- After identifying the path
you have to copy each of the following
files to its corresponding directory based on the root folder of your
java runtime installation (e.g. 'C:\Program Files (x86)\Java\jre6\').
The given files are located in the Ranorex installation folder (e.g.
'C:\Program Files\Ranorex 3.2\Bin')
- 'accessibility.properties' to \lib
- 'RanorexAutomation.jar' to \lib\ext
- 'JavaHelper32/64.dll' to \bin
After restarting you Java application you should be able to use the Ranorex for your Java application under test.
To Remove, comment out
assistive_technologies=com.ranorex.RanorexAutomation
in accessibility.properties
and delete
RanorexAutomation.jar
Thursday, June 28, 2012
use ‘&&’ in MXML
see ref:Flex tip: conditions like ‘&&’ in MXML
<BetterFormItem label="{Util.geti18nText(this,'roles')}"
width="100%"
id="role_gateway_id"
key="rules"
includeInLayout="{raciGridPerformersRaci.dataProvider.length>0 && raciGridPerformersRaci.selectedItem.@type_id =='ROLE'}"
visible="{raciGridPerformersRaci.dataProvider.length>0 && raciGridPerformersRaci.selectedItem.@type_id =='ROLE'}"
>
</BetterFormItem>
<BetterFormItem label="{Util.geti18nText(this,'roles')}"
width="100%"
id="role_gateway_id"
key="rules"
includeInLayout="{raciGridPerformersRaci.dataProvider.length>0 && raciGridPerformersRaci.selectedItem.@type_id =='ROLE'}"
visible="{raciGridPerformersRaci.dataProvider.length>0 && raciGridPerformersRaci.selectedItem.@type_id =='ROLE'}"
>
</BetterFormItem>
Thursday, May 3, 2012
ExtJS Debug: dynamic loading Ext Class and our own class
in app.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MyTestBedPurecode</title>
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"/>
<script type="text/javascript" src="ext/ext-debug.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="app/overrides/CustomXmlReader.js"></script>
</head>
<body></body>
</html>
use ext-debug.js( instead of ext-all-dev.js) will ensure we only load class when needed.
and the file size is small so the app can be easy debug.
MyTestBed
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MyTestBedPurecode</title>
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"/>
<script type="text/javascript" src="ext/ext-debug.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="app/overrides/CustomXmlReader.js"></script>
</head>
<body></body>
</html>
use ext-debug.js( instead of ext-all-dev.js) will ensure we only load class when needed.
and the file size is small so the app can be easy debug.
Tuesday, May 1, 2012
Ext.override
// in app.html
<link rel="stylesheet" type="text/css" href="http://localhost/extjstest/extjs-4.0.7/resources/css/ext-all.css"/>
<script type="text/javascript" src="http://localhost/extjstest/extjs-4.0.7/ext-all-dev.js"></script>
<script type="text/javascript" src="app/overrides/Ext.data.reader.Xml.js"></script>
/* file name app/overrides/Ext.data.reader.Xml.js */
Ext.override(Ext.data.reader.Xml,{
extractData: function(root) {
var recordName = this.record;
//<debug>
if (!recordName) {
Ext.Error.raise('Record is a required parameter');
}
//</debug>
if (recordName != root.nodeName) {
//root = Ext.DomQuery.select(recordName, root);
//patch
root = Ext.DomQuery.select('>' + recordName, root);
} else {
root = [root];
}
return this.callParent([root]);
}
});
<link rel="stylesheet" type="text/css" href="http://localhost/extjstest/extjs-4.0.7/resources/css/ext-all.css"/>
<script type="text/javascript" src="http://localhost/extjstest/extjs-4.0.7/ext-all-dev.js"></script>
<script type="text/javascript" src="app/overrides/Ext.data.reader.Xml.js"></script>
/* file name app/overrides/Ext.data.reader.Xml.js */
Ext.override(Ext.data.reader.Xml,{
extractData: function(root) {
var recordName = this.record;
//<debug>
if (!recordName) {
Ext.Error.raise('Record is a required parameter');
}
//</debug>
if (recordName != root.nodeName) {
//root = Ext.DomQuery.select(recordName, root);
//patch
root = Ext.DomQuery.select('>' + recordName, root);
} else {
root = [root];
}
return this.callParent([root]);
}
});
treecolumn renderer function for Ext.tree.Panel
Ext.define('MyApp.view.XmlTreePanel', {
extend: 'Ext.tree.Panel',
alias: 'widget.xmltreepanel',
title: 'My Tree Panel',
store: 'MyXmlTreeStore',
id:'xmltreepanel',
initComponent: function() {
var me = this;
Ext.applyIf(me, {
viewConfig: {
},
columns: [
{
xtype: 'treecolumn',
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
return unescape(value);
},
text: 'MyTreeColumn'
}
]
});
me.callParent(arguments);
}
});
urldecode xml attribute , mapping , convert
Ext.define('MyApp.model.MyModel', {
extend: 'Ext.data.Model',
fields: [
{
convert:function(v,rec){
return unescape(v);
} ,
mapping: '@label',
name: 'label',
type: 'string'
}
]
});
<?xml version="1.0" encoding="UTF-8"?>
<explorer >
<node label="%20Feng%20Guideline%20" type="GUIDELINE" nodeid="9740015D-3447-1CC6-949E-C91D0876F8D1" selected="true" version="0.34" seqnum="" year="2012" versionid="D956A51D-A9A8-8398-B191-79A44A97D75F">
</node>
</explorer>
Ext.define('MyApp.view.BottomPanel', {
extend: 'Ext.panel.Panel',
alias: 'widget.bottompanel',
height: 150,
id: 'bottompanel',
title: 'My Panel',
initComponent: function() {
var me = this;
Ext.applyIf(me, {
tpl: [
'Label: {label}<br>'
]
});
me.callParent(arguments);
}
});
Subscribe to:
Posts (Atom)