Показать сообщение отдельно
Старый 11.09.2007, 01:47
Pow R. Toc H. вне форума Посмотреть профиль Отправить личное сообщение для Pow R. Toc H. Найти все сообщения от Pow R. Toc H.
  № 1  
Ответить с цитированием
Pow R. Toc H.

Регистрация: Nov 2006
Сообщений: 176
По умолчанию Создание State программно

Вот код приложения, функция createNewState - создаёт новое состояние:
Код:
<?xml version="1.0"?>
<!-- states\StatesAS.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
   applicationComplete="createNewState()" >

    
    <mx:Script>
        <![CDATA[
        	import mx.states.SetProperty;
        	import mx.states.State;
        public var stateMore:State;
        
        public function createNewState():void{
        	stateMore = new State();
        	stateMore.name = "More";
        	var setPr:SetProperty = new SetProperty();
        	setPr.target = 'Panel';
        	setPr.name = 'height';
        	setPr.value = 300;
        	stateMore.overrides.push(setPr);
        	states.push(stateMore);
        }

		public function panelResize():void{
			if(currentState == 'More'){
				panelResize_tr.fromState='More';
				panelResize_tr.toState='*';				
			}
			else{
				panelResize_tr.toState='More';
				panelResize_tr.fromState='*';								
			}
			currentState = currentState=='More'?'':'More';
		}

        ]]>
    </mx:Script>

    <mx:transitions>
    	<mx:Transition id="panelResize_tr" fromState="*" toState="More">
    		<mx:Parallel target="{Panel}">
    			<mx:Resize duration="200">    				
    			</mx:Resize>
    		</mx:Parallel>
    	</mx:Transition>
     </mx:transitions>
    
    <mx:Panel width="250" height="200" layout="absolute" id="Panel" click="panelResize()">
    </mx:Panel>
</mx:Application>
но по чему то не хочет реагировать.. если вместо функции createNewState использовать
Код:
<mx:states>
<mx:State name="More">    		
<mx:SetProperty target="{Panel}" name="height" value="272"/>  
</mx:State>
</mx:states>
то всё работает...