0 0

state 切換resize問題5

最近我在解決UI的問題,我把問題簡化後的程序代碼如下

簡單說我在切換State時順便做resize動作
(複製手法先點Change view button,再點Change Size button,發現不一樣width後,再點兩次Change view button)

點兩次以上"change view" button,又會可以

問題到底出在哪裡?請問我觀念哪裡需要加強?

Flex SDK: 3.5 
謝謝解答 感激不盡

主要的application page
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:component="com.component.*" layout="absolute">
    
    <mx:Script>
        <![CDATA[
            import mx.binding.utils.BindingUtils;
            import mx.controls.Alert;
            
            private var _varWidth:int = 300;
            
            private function changeState():void{
                if(currentState == "viewsState"){
                    currentState = "";
                }else{
                    currentState = "viewsState";
                }        
            }
            
            private function changeSize():void{
                _varWidth = 500;
                dispatchEvent(new Event("widthChanged"));
            }
            
            [Bindable("widthChanged")]
            public function get varWidth():int
            {
                return _varWidth;
            }
            
        ]]>
    </mx:Script>
    <mx:Button  width="100" label="Change View" x="20" y="20" click="changeState()"/>
    <mx:Button  width="100" label="Change Size" x="140" y="20" click="changeSize()"/>
    <mx:HBox width="100%" height="100%" id="hbox1" x="24" y="52">        
        <component:componCanvas id="com1" width="100%" height="100%" backgroundColor="#29F73C">
        </component:componCanvas>
    </mx:HBox>
    
    <mx:states>
        <mx:State name="viewsState">
            <mx:SetProperty target="{com1}" name="width" value="{varWidth}"/>
            <mx:AddChild relativeTo="{hbox1}">
                <mx:VRule height="100%"/>
            </mx:AddChild>
            <mx:AddChild relativeTo="{hbox1}" position="lastChild">
                <component:componCanvas width="{varWidth}" height="100%" backgroundColor="#FED90B">
                </component:componCanvas>
            </mx:AddChild>
        </mx:State>
    </mx:states>
</mx:Application>



Component code

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">    
        <mx:Label x="0" y="0" text="this.width="/>
        <mx:Label x="60" y="0" text="{this.width}"/>        
</mx:Canvas>
2011年10月26日 14:07
目前还没有答案

相关推荐

    state-manager:jQuery 响应式布局状态管理器

    1. **状态定义与切换**:state-manager 允许开发者定义不同的状态,比如 "mobile"、"tablet" 和 "desktop",并根据设备的视口宽度自动切换。这可以通过监听窗口的 resize 事件来实现,确保页面布局总能适应用户的...

    Flex4之控制状态转换以及产生动画特效【登录示例】

    通过定义不同的状态(state),可以轻松地切换UI布局或触发特定行为。同时,利用Flex内置的动画功能,可以为这些状态间的转换添加视觉效果,增强用户体验。 ##### 2.1 状态(State) 在Flex中,每个容器组件(如...

    flex最大化最小化关闭

    当窗体被最大化时,可以通过检查`nativeWindow.isMaximized`属性来切换皮肤中的状态。同时,当窗体恢复时,可能需要重置其大小和位置。可以监听`Resize`事件来实现这一点: ```actionscript nativeWindow....

    全屏打开浏览器

    例如,`window.screen.width` 和 `window.screen.height` 可以获取用户的屏幕分辨率,`window.resizeTo()` 和 `window.moveTo()` 方法可以用来调整窗口大小和位置。 2. **Chrome DevTools**:开发者可以通过Chrome...

    JS特效总结

    14. **路由管理**:在单页应用(SPA)中,使用`hashchange`或`history.pushState`等方法,可以实现页面跳转而不实际刷新。 15. **Web存储**:`localStorage`和`sessionStorage`允许在浏览器中存储数据,用于实现...

    Flex 3 组件实例与应用(2009版)

    - **Resize** - 改变尺寸的效果。 - **Rotate** - 旋转效果。 - **Sequence** - 顺序播放多个效果。 - **SoundEffect** - 声音效果。 - **WipeDown/WipeLeft/WipeRight/WipeUp** - 清除动画效果。 - **Zoom** - 缩放...

    libgdx.info-Basic_Action

    - **游戏状态管理**: 通过GameState或StateMachine类,可以有效地管理游戏的不同阶段,如菜单、游戏主循环、暂停状态等。 5. **扩展和优化**: - **Scene2D**: Scene2D库提供了UI组件和行为系统,方便构建游戏...

    最全的oracle常用命令大全.txt

    要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle&gt;svrmgrl SVRMGR&gt;connect internal SVRMGR&gt;startup SVRMGR&gt;quit b、关闭ORACLE系统 oracle&gt;svrmgrl SVRMGR&gt;connect...

    jquery1.5 参考文档

    #### 表单状态过滤器 (Form State Filters) 这些过滤器用于选择具有特定状态的表单控件: - `:enabled`:选取所有可用的控件。 - `:disabled`:选取所有禁用的控件。 - `:checked`:选取所有被选中的控件。 - `:...

    TopDown-Learn1:学习libgdx开发的应用程序

    StateMachine或GameStateManager类可以帮助我们管理这些状态的切换。 通过"TopDown-Learn1"项目,开发者可以学习到libgdx的基本使用方式,进一步深入可以研究更复杂的游戏机制,如网络对战、存档系统、AI算法等。...

    jquery1.11.0手册

    resize([[data],fn]) scroll([[data],fn]) select([[data],fn]) submit([[data],fn]) unload([[data],fn]) 效果 基本 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) 滑动 slideDown([s]...

Global site tag (gtag.js) - Google Analytics