我在创建完成时更新var并使用它触发函数时遇到了问题。
在主要组件中,我宣布了一个var艺术家。这个var肯定有效并且有价值。我还需要另一个组件中的var:一个配置文件组件。我可以通过以下方式获得该变量:
newVar = Maincomp(this.parentApplication).artist;
我在配置文件组件中的API中使用newVar。当我使用mouseEvent启动API函数时,它可以工作。但是,我想在creationComplete上启动API函数,而不是var不工作:它返回Null。我希望让所有涉及的vars都可以帮助,但它并没有。怎么解决这个问题?
使我的案例更清晰的额外代码:
在主要比赛中:
public function handleclick(cName:String):void
{
vName = "aVariableIGetFromAnAPI";
}
在个人资料中:
public function zoekImages(event:FlexEvent):void
{
var api_URL:String = 'http://ws.audioscrobbler.com/2.0/';
var api_imagemethod:String = 'artist.getImages';
var api_key:String = '99f1f497c0bd598f1ec20571a38e2219';
artistImage = DifficultierAPI(this.parentApplication).vName;
var autocorrect:String = '1';
var limit:String = '4';
api_imagerequest = api_URL + '?method=' + api_imagemethod + '&artist=' + artistImage + '&autocorrect=' + autocorrect + '&api_key=' + api_key + '&limit=' + limit;
imageRequest.send(); // hier maak je connectie met lastfm
}
此代码有效,但重点是,如果我使用MouseEvent调用它,此代码可以正常工作,但是当它需要在creationcomplete上启动时却没有。或者,它返回Null而不是值。我认为让所涉及的vars可绑定会修复它,但它并没有。有什么帮助吗?
答案 0 :(得分:0)
如果您希望将变量从主应用程序绑定到嵌套组件,只需将变量声明为public并在组件中绑定:
主要应用
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:Components="Components.*">
<fx:Script>
<![CDATA[
[Bindable]
public var myMainVar:String;
protected function button1_clickHandler(event:MouseEvent):void
{
myMainVar = "Hi there!";
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button label="Click me to update the coponent's variable" click="button1_clickHandler(event)"/>
<Components:MyCustomComponent myComponentVar="{myMainVar}"/>
</s:WindowedApplication>
嵌套组件
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
[Bindable]
public var myComponentVar:String;
]]>
</fx:Script>
<s:Label text="{myComponentVar}"/>
</s:Group>
我希望这是你正在寻找的东西: - )