Редактировать 3: Хорошо, я освещаю виртуальную машину Windows Server 2008 R2, устанавливаю Flex Builder 3 и проверяю, могу ли я получить новый проект для правильной компиляции и выполнения. News! Я запустил IDE и запустил ее на виртуальной машине, и я STILL получил точно такую же ошибку после того, как код скомпилирован без проблем!Вот большой, решительный удвоенный тиф эфф .
Редактировать 2: Поскольку этот пост был довольно длинным, я выложу его здесь.Я просто просмотрел и удалил каждую часть двух проблемных строк по отдельности и попытался скомпилировать после каждой, и каждый раз получал ошибку.Я даже удалил все из двух DataGridColumn
с, и он все еще не скомпилировался, хотя комментирование двух пустых строк <mx:DataGridColumn />
позволит программе загрузиться!Это сводит меня с ума, кто-нибудь может пролить свет на это для меня?
/ Edit 2
У меня есть приложение AIR, которое, очевидно, будет прекрасно компилироваться, когда я нажму F5,но до того, как приложение получит возможность загрузить, я получаю следующую ошибку:
Комментируя блоки кода, я сузил проблему до двух конкретных строк.
<mx:DataGrid id="grid1" width="100%" height="100%" editable="false">
<mx:columns>
<mx:DataGridColumn headerText="Symbol" dataField="Symbol" headerWordWrap="true" width="100" textAlign="left"/>
<mx:DataGridColumn headerText="Description" dataField="FullName" headerWordWrap="true" width="150" textAlign="left"/>
<mx:DataGridColumn headerText="Trans" dataField="TransactionCode" headerWordWrap="true" width="75" textAlign="center"/>
<mx:DataGridColumn headerText="Quantity" dataField="Quantity" headerWordWrap="true" width="50" textAlign="right" labelFunction="formatUtil3"/>
<mx:DataGridColumn headerText="Execution Date" dataField="ExecutionDate" headerWordWrap="true" width="80" textAlign="center"/>
<mx:DataGridColumn headerText="Execution Price" dataField="ExecutionPrice" headerWordWrap="true" width="65" textAlign="right" labelFunction="formatUtil1"/>
<mx:DataGridColumn width="15" backgroundColor="0x888888" dataField="blank1" headerText=""/>
<mx:DataGridColumn headerText="Previous Business Day" dataField="PreviousDate" headerWordWrap="true" width="80" textAlign="center" itemRenderer="PD5"/>
<!----> <mx:DataGridColumn headerText="Previous Business Day Price" dataField="PreviousDatePrice" headerWordWrap="true" width="65" textAlign="right" labelFunction="formatUtil1" itemRenderer="PD5"/>
<!----> <mx:DataGridColumn headerText="% Difference" dataField="PreviousDateDelta" headerWordWrap="true" width="65" textAlign="right" labelFunction="formatUtil2" itemRenderer="PD5"/>
<mx:DataGridColumn headerText="Source" dataField="PreviousDateSource" headerWordWrap="true" width="100" textAlign="left" itemRenderer="PD5"/>
<mx:DataGridColumn width="15" backgroundColor="0x888888" dataField="blank2" headerText=""/>
<mx:DataGridColumn headerText="Previous Month End" dataField="PrevMonthEndDate" headerWordWrap="true" width="80" textAlign="center" itemRenderer="PME5"/>
<mx:DataGridColumn headerText="Previous Month End Price" dataField="PrevMonthEndPrice" headerWordWrap="true" width="65" textAlign="right" labelFunction="formatUtil1" itemRenderer="PME5"/>
<mx:DataGridColumn headerText="% Difference" dataField="PrevMonthEndDelta" headerWordWrap="true" width="65" textAlign="right" labelFunction="formatUtil2" itemRenderer="PME5"/>
<mx:DataGridColumn headerText="Source" dataField="PrevMonthEndSource" headerWordWrap="true" width="100" textAlign="left" itemRenderer="PME5"/>
</mx:columns>
</mx:DataGrid>
Две строки помечены <!---->
.Если я прокомментирую эти две строки, приложение будет правильно скомпилировано, запущено и отображено, но если я оставлю любую из них активной, я получу сообщение об ошибке выше.
Что здесь происходит?
Редактировать: Дополнительный код по запросу -
<mx:CurrencyFormatter id="format1" precision="5" useNegativeSign="false"/>
<mx:NumberFormatter id="format2" precision="2"/>
И функции -
private function formatUtil1(item:Object, column:DataGridColumn):String
{
var Field:Object = item[column.dataField];
return format1.format(Field);
}
private function formatUtil2(item:Object, column:DataGridColumn):String
{
var Field:Object = item[column.dataField];
return format2.format(Field);
}
Далее .as файл для PD5 -
package
{
import mx.controls.Label;
import mx.controls.listClasses.*;
public class PD5 extends Label
{
private const POSITIVE_COLOR:uint = 0x000000; // Black
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
setStyle("color", (data.PreviousDateDelta >= 5 || data.PreviousDateDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);
}
}
}
А теперь PME5.as -
package
{
import mx.controls.Label;
import mx.controls.listClasses.*;
public class PME5 extends Label
{
private const POSITIVE_COLOR:uint = 0x000000; // Black
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
setStyle("color", (data.PrevMonthEndDelta >= 5 || data.PrevMonthEndDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);
}
}
}