PDA

Pogčedajte punu verziju : Distribucija komponenti - problem sa Button komponentom


stanislav.simunec
22. 02. 2010., 01:27
Imam seldeci problem:

Razvili nekoliko as3 class-a, koje se oslanjaju na Yahoo Astra flash biblioteku.
Zatim smo kreirali komponentu (symbol) koja nasleduje jednu od tih naših klasa.
Odlucili smo da distribuiramo tu našu komponentu u obliku mpx ekstenzije. Znaci
eksportovali smo komponentu u swc file i napravili ekstenziju.

Ukoliko zatim upotrebimo komponentu u novom projektu, dobijamo sledeci exception:

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground()
at fl.controls::LabelButton/fl.controls:LabelButton::draw()
at fl.controls::Button/fl.controls:Button::draw()
at fl.core::UIComponent/drawNow()
at com.yahoo.astra.fl.containers.layoutClasses::BaseL ayoutPane/com.yahoo.astra.fl.containers.layoutClasses:BaseLa youtPane::redrawUIComponentChildren()
at com.yahoo.astra.fl.containers.layoutClasses::BaseL ayoutPane/com.yahoo.astra.fl.containers.layoutClasses:BaseLa youtPane::draw()
at com.yahoo.astra.fl.containers.layoutClasses::Advan cedLayoutPane/com.yahoo.astra.fl.containers.layoutClasses:Advanc edLayoutPane::draw()
at com.yahoo.astra.fl.containers::BoxPane/com.yahoo.astra.fl.containers:BoxPane::draw()
at fl.core::UIComponent/drawNow()
at com.yahoo.astra.fl.containers.layoutClasses::BaseL ayoutPane/com.yahoo.astra.fl.containers.layoutClasses:BaseLa youtPane::redrawUIComponentChildren()
at com.yahoo.astra.fl.containers.layoutClasses::BaseL ayoutPane/com.yahoo.astra.fl.containers.layoutClasses:BaseLa youtPane::draw()
at com.yahoo.astra.fl.containers.layoutClasses::Advan cedLayoutPane/com.yahoo.astra.fl.containers.layoutClasses:Advanc edLayoutPane::draw()
at com.yahoo.astra.fl.containers::BoxPane/com.yahoo.astra.fl.containers:BoxPane::draw()
at fl.core::UIComponent/fl.core:UIComponent::callLaterDispatcher()
Cannot display source code at this location.


Ovo se ne dešava ukoliko u novom projektu uz naš menuBar na isti ekran dodamo Button kontrolu (onu koja se nalazi
u standardnom setu komponenti).
Da li je moguce resiti ovaj problem , tako da eventualni korisnici nase biblioteke ne moraju da
dodaju Button komponentu uz nas menuBar ?distribucija komponenti - problem sa Button komponentom

nixa
22. 02. 2010., 02:33
Trebasa nekako da extendujes tu klasu, samo sto iz ovoga niko ne moze da ti kaze sta je tacno problem.

Probaj na yahoo grupi za yahoo.astra podrsku, posto verovatno je njihov class dispatch

stanislav.simunec
23. 02. 2010., 00:30
Nije to rešenje. Rešenje ja malo čudno. U As3 class-u (menuBar) sam dodao sledeće :


var skin1:Button_upSkin=new Button_upSkin();
var skin2:Button_selectedUpSkin=new Button_selectedUpSkin();
var skin3:Button_selectedOverSkin=new Button_selectedOverSkin();
var skin4:Button_selectedDownSkin=new Button_selectedDownSkin();
var skin5:Button_selectedDisabledSkin=new Button_selectedDisabledSkin();
var skin6:Button_overSkin=new Button_overSkin();
var skin7:Button_emphasizedSkin=new Button_emphasizedSkin();
var skin8:Button_downSkin=new Button_downSkin();
var skin9:Button_disabledSkin=new Button_disabledSkin();


var btn:Button = new Button();
btn.setStyle( "Button_upSkin", new Button_upSkin());
btn.enabled = false;
btn.visible = false;
addChild( btn );


Ne razumem zašto sam morao da instanciram skin class-e ?