Ricardo,no nosso caso, todas as views são ficheiros Actionscript que estendem SkinnableContainer e possuem uma skin em MXML. Na View inicial (Application /WindowedApplication) nós não colocamos nenhum código visual, tirando a View (SkinnableContainer) que tem a aplicacão propriamente dita.
Ou seja:
<s:Application />
<s:AirgileView />
</s:Application>
Quanto ao AirgileView:
public class AirgileView extends SkinnableComponent
{
// etc
}
Relativamente à associacão da Skin, é feita no CSS:
core|AirgileView
{
skin-class:
ClassReference("com.airgile.crm.skins.petro.views.core.AirgileViewSkin");
}E depois no AirgileViewSkin.mxml são definidas então as posicões dos botões, e outros. Exemplo:
<s:Group id="contentHolder"
left="0" right="0" top="63" bottom="20">
<users:LoginView id="loginView"
width="100%" height="100%"
includeIn="login"/>
<view:OverviewView id="overview"
width="100%" height="100%"
includeInLayout="false"
includeInLayout.overview="true"
visible="false"
visible.overview="true"/>
<view2:TicketsView id="ticketsView"
width="100%" height="100%"
includeInLayout="false"
includeInLayout.tickets="true"
visible="false"
visible.tickets="true"/>
<view:ConfigurationView id="configurationView"
width="100%" height="100%"
includeInLayout="false"
includeInLayout.configuration="true"
visible="false"
visible.configuration="true"/>
<users:MyProfileView id="myProfileView"
width="100%" height="100%"
includeInLayout="false"
includeInLayout.myProfile="true"
visible="false"
visible.myProfile="true"
user="{hostComponent.user}"
accountBlocked="{hostComponent.account.blocked}"/>
</s:Group>
(nota: nós usamos o includeInLayout e o visible neste caso em vez de
States por questões de performance. Mas isso é outra discussão...).
linkedIn <http://pt.linkedin.com/in/jsaleiro> João Saleiro Chief Technology Officer Tel: 00351 916 077 097 Email: [email protected] <mailto:[email protected]> Skype: joao.saleiro <callto://joao.saleiro>Webfuel Solutions <http://www.webfuel.pt> www.webfuel.pt <http://www.webfuel.pt>
Lisbon, Portugal On 16-06-2011 17:06, Ricardo Araújo wrote:
Ajudou, mas ainda tenho umas dúvidas.... por exemplo: crio um projecto novo, e na WindowedApplication coloco-lhe dois botões normais<s:Button /> ... depois como é que eu na skin que aplicar ao WindowedApplication posso definir por exemplo posições para cada botão? (se fosse um SkinnableComponent diria que aquele botão era uma SkinPart) On Jun 16, 4:57 pm, João Saleiro<[email protected]> wrote:Ricardo, n�o percebi bem a tua quest�o. N�s aqui resolvemos a quest�o do multi-skinning com facilidade, usando stylesheets CSS. Cada theme tem o seu pr�prio CSS que define o aspecto gr�fico de *todos e quaisquer* componentes visuais. A t�tulo de exemplo: s|Application { skin-class: ClassReference("com.airgile.crm.skins.petro.views.core.ApplicationSkin"); } view3|NotificationBox { skin-class: ClassReference("pt.webfuel.core.ui.notification.view.skin.NotificationBoxSk in"); } core|AirgileView { skin-class: ClassReference("com.airgile.crm.skins.petro.views.core.AirgileViewSkin"); } s|TextArea { skin-class: ClassReference("com.airgile.skins.petro.components.textarea.TextAreaSkin"); focus-alpha: 0; } Quando queres mudar o theme, simplesmente trocas o CSS (usando ou n�o Runtime CSS). Espero que ajude. linkedIn<http://pt.linkedin.com/in/jsaleiro> Jo�o Saleiro Chief Technology Officer Tel: 00351 916 077 097 Email: [email protected]<mailto:[email protected]> Skype: joao.saleiro<callto://joao.saleiro> Webfuel Solutions<http://www.webfuel.pt> www.webfuel.pt <http://www.webfuel.pt> Lisbon, Portugal On 16-06-2011 16:42, Ricardo Ara�jo wrote:Boa tarde malta, Estou aqui a planear uma aplica��o em que pretendo personaliza-la a n�vel do design para cada cliente. Aplico uma skin � WindowedApplication e depois queria na pr�pria skin aplicar skins doutros componentes que est�o dentro da WindowedApplication... como fa�o? provavelmente n�o se faz assim? :) ... � que depois teria que dizer que um componente declarado em mxml seria uma SkinPart... Existe por exemplo outro caso de um ecr� em que s�o constru�dos objectos dinamicamente no componente que estende do skinnablecomponent. Como fa�o para criar skin parts dinamicamente? e depois na skin como lido com esses objectos que foram criados?
-- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Para anular a inscrição neste grupo, envie um e-mail para [email protected]. Para ver mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT.
<<inline: LinkedIn.gif>>
<<inline: Webfuel.gif>>
