當我嘗試在BB Playbook上運行一個名爲Cannot create property editable on qnx.fuse.ui.text.StageTextInput
的應用程序時,我總是收到錯誤消息。在Android和模擬器中內置的Flash Builder中,相同的確切代碼可以正常工作,但在物理Playbook和Blackberry Playbook Simulator中出現錯誤。的代碼,這似乎是導致錯誤的區域如下:無法在黑莓應用程序中創建文本輸入
<s:VGroup includeIn="login" top="10" left="10" right="10" id="loginForm">
<s:Label text="Email" />
<s:TextInput id="txt_email" width="100%" softKeyboardType="email" />
<s:Label text="Password" />
<s:TextInput id="txt_password" width="100%" displayAsPassword="true" />
<s:Button id="btn_login" label="Login" click="authenticate()" fontWeight="normal"/>
</s:VGroup>
而且堆棧跟蹤:
ReferenceError: Error #1056: Cannot create property editable on qnx.fuse.ui.text.StageTextInput.
at flash.text::StageText/init()
at flash.text::StageText()
at StageTextPool$/acquireStageText()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:3072]
at spark.components.supportClasses::StyleableStageText/http://www.adobe.com/2006/flex/mx/internal::getStageText()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:2415]
at spark.components.supportClasses::StyleableStageText()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:403]
at spark.skins.mobile.supportClasses::StageTextSkinBase/createChildren()[E:\dev\4.y\frameworks\projects\mobiletheme\src\spark\skins\mobile\supportClasses\StageTextSkinBase.as:185]
at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
at mx.core::UIComponent/addChild()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7176]
at spark.components.supportClasses::SkinnableComponent/attachSkin()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:692]
at spark.components.supportClasses::SkinnableComponent/validateSkinChange()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:443]
at spark.components.supportClasses::SkinnableComponent/createChildren()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:406]
at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
at mx.core::UIComponent/addChildAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7199]
at spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2037]
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1628]
at spark.components::Group/setMXMLContent()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:633]
at spark.components::Group/createChildren()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:855]
at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
at mx.core::UIComponent/addChildAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7199]
at spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2037]
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1628]
at spark.components::Group/addElementAt()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1387]
at spark.components::SkinnableContainer/addElementAt()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:775]
at mx.states::AddItems/addItemsToContentHolder()[E:\dev\4.y\frameworks\projects\framework\src\mx\states\AddItems.as:782]
at mx.states::AddItems/apply()[E:\dev\4.y\frameworks\projects\framework\src\mx\states\AddItems.as:563]
at mx.core::UIComponent/applyState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:10741]
at mx.core::UIComponent/commitCurrentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:10487]
at mx.core::UIComponent/commitProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8304]
at spark.components.supportClasses::SkinnableComponent/commitProperties()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:452]
at mx.core::UIComponent/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8219]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:813]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
您正在使用哪個版本的Flex?我不認爲Playbook支持最新版本的Flex/AIR。如果您使用的是Flex 4.6,我認爲默認的TextInput皮膚使用本地文本控件(StageText),而不是「默認」Flex控件(TextField)。 [4.5中並非如此] – JeffryHouser 2012-02-08 18:44:19
我在Flex 4.6上。我應該降級到4.5還是有辦法讓它使用Flex控件而不是本地控件? – 2012-02-08 19:38:15
我不確定。我可以找到的最佳信息是,Playbook目前不支持AIR 3(http://supportforums.blackberry.com/t5/Tablet-OS-SDK-for-Adobe-AIR/Tips-Definitive-guide-to-AIR- apps-for-playbook/td-p/1080047)。如果是這樣,您必須降級,否則Captive Runtime可能會起作用。 「舊皮膚」應該仍然存在,所以你可以指定皮膚類爲'spark.skins.mobile.TextAreaSkin' – JeffryHouser 2012-02-08 20:06:50