gpt4 book ai didi

apache-flex - 柔性 : Call function from included component

转载 作者:行者123 更新时间:2023-12-04 02:57:07 26 4
gpt4 key购买 nike

这与我之前的帖子类似。但是这次我想调用一个存在于主 mxml 页面上的函数。

这是我的主要 mxml 页面:

主.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
<mx:Script>
<![CDATA[
public function changeText(currentText:String):void{

switch (currentText){
case "changeText":
lblOne.text = "More Text";
}
}
]]>
</mx:Script>

<mx:HBox x="137.5" y="10" width="100%" height="100%">
<ns1:menu id="buttons"> </ns1:menu>
</mx:HBox>
<mx:Canvas x="137" y="88" width="408.5" height="200">
<mx:HBox x="0" y="10" width="388.5" height="190">
<mx:Panel width="388" height="179" layout="absolute">
<mx:Label x="10" y="10" text="Some Text" visible="{buttons.showLabel}" id="lblOne"/>
</mx:Panel>
</mx:HBox>
</mx:Canvas>
</mx:Application>

这是我包含的页面:

菜单.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
[Bindable] public var showLabel:Boolean = true;
]]>
</mx:Script>
<mx:MenuBar width="380" height="58"></mx:MenuBar>
<mx:Button x="10" y="10" width="80" label="Show" id="btnOne" click="this.showLabel=true;" />
<mx:Button x="94" y="10" width="80" label="Hide" id="btnTwo" click="this.showLabel=false;"/>
<mx:Button x="181" y="10" width="80" label="Run Function" id="btnThree" click="{changeText('changeText')}"/>
</mx:Canvas>

如何从 menu.mxml 上的按钮调用 changeText 函数?

最佳答案

将此添加到菜单:

  <mx:Metadata>
[Event(name="buttonClicked", type="flash.events.Event")]
</mx:Metadata>

<mx:Button x="10" y="10" width="80" label="Show" id="btnOne" click="this.showLabel=true;dispatchEvent(new Event("buttonClicked"));"/>

将 main 更改为:

  <ns1:menu id="buttons" buttonClicked="changeText("Your Text");">

我不知道当前文本来自哪里,但如果它来自菜单,您可能必须构建自己的自定义 flex 事件或创建一个公共(public)变量以供这两个部分访问。通常首选第一个。

附言事件元数据也可以通过在应用程序创建完成时添加事件监听器来实现。您将添加到 main:

buttons.addEventListener("buttonClicked",changeText("Your Text"));

关于apache-flex - 柔性 : Call function from included component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com