Показать сообщение отдельно
Старый 15.08.2011, 03:45
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 1  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию видеоплеер,запутался со стэйтами

Здравствуйте
есть у меня вью плеера, это SkinnableContainer со скином
В нем есть несколько динамических skinPart-ов (плэйлист, реклама, убирающаяся полоска кнопок Б большаякнопка плэй-паузавсередине экрана, большая кнопка BusyIndicator в середине экрана итд)

Из за отсутствия опыта работы со стэйтами я прописал их в компоненте и скине следующим образом


Код AS3:
[SkinState(name="normal")] // маленькая полоска ScrubBar
		[SkinState(name="disabled")] 
		[SkinState(name="extended")] // маленькая полоска ScrubBar + всплывающие контролы
		[SkinState(name="normalWithPlaylist")] // маленькая полоска ScrubBar + плэйлист
		[SkinState(name="normalWithBuffering")] // маленькая полоска ScrubBar + BusyIndicator
		[SkinState(name="extendedWithPlaylist")] // маленькая полоска ScrubBar + плэйлист
		[SkinState(name="extendedWithAdvert")] // маленькая полоска ScrubBar + + всплывающие контролы + плэйлист
		[SkinState(name="extendedWithBuffering")] // маленькая полоска ScrubBar +  всплывающие контролы + BusyIndicator
		[SkinState(name="paused")]  // в контролах кнопка плэй со стрелкой
		[SkinState(name="playing")]  // в контролах кнопка плэй со паузой
В скине
[as3]
<s:states>
<s:State name="normal"/>
<s:State name="disabled"/>
<s:State name="extended"/>
<s:State name="normalWithBuffering"/>
<s:State name="normalWithPlaylist"/>
<s:State name="extendedWithPlaylist"/>
<s:State name="extendedWithAdvert"/>
<s:State name="extendedWithBuffering"/>

<s:State name="paused"/>
<s:State name="playing"/>
</s:states>
[as3]

При такой ситуации я не могу назначить стэйт для компонента когда он стоит на паузе (в середине экрана кнопка с треугольником) + показывает рекламу

Или мне нужно абсолюно все стэйты прописать?
типа:
extendedPlyingWithAdvert
extendedBufferingWithAdvert
...

И потом, скажем для перехода из extendedWithAdvert в extendedPlyingWithAdvert мне нужно распарсить строку предидущего стэйта на предмет нахождения "WithAdvert" и поменять стэйт ?

Мне кажется это мраком

Как правильно работать со стэйтами в таких ситуациях ?