PDA

Просмотр полной версии : Доступ к свойствам в myComponent


unKnow
22.06.2006, 16:17
Несмог найти a хелпе - может кто знает

создал в проекте свой компонент movieCard
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="140" cornerRadius="10" backgroundColor="#c0c0c0">
<mx:Label id="nameMovie" x="10" y="6"/>
</mx:Canvas>


вызываю его

import myComponents.*;

var myCard:movieCard = new movieCard();
myCard.toolTip = "Тултип работает" ;
myCard.move(10, 10);
myCanvas.addChild(myCard);


копилю - все ок card появляется!
тултип присутствует!

теперь пытаюсь достучатся к любому из свойств моего компонента

import myComponents.*;

var myCard:movieCard = new movieCard();
myCard.toolTip = "Тултип работает" ;
myCard.nameMovie.text = "БлаБлаБла";
myCard.move(10, 10);
myCanvas.addChild(myCard);

в редакторе набрав myCard. - появляется набор допустимых строк
!!!!в том числе nameMovie - выбираю его!!!!

myCard.nameMovie. - снова набор и снова правильный (для Label)

тоесть редактор видит все вложения моего компонента!!

компилю и .......
дебагер сообщает ошибку
Error #1009: Cannot access a property or metod of a null object reference.

и браузер вешается намертво!

в чем грабли?

fishbounce
22.06.2006, 16:45
Попробуй обратиться к nameMovie после добавления компонента на сцену, т.е. после addChild. Возможно, твой label еще не создан, а ты пытаешься к нему обратиться.

unKnow
22.06.2006, 17:10
а ларчик просто открывался - спасибо помогло

есть еще вопрос
mx:Move
можно его использовать в моем компоненте
и если да то какая иерархия?

структура типа

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="140" cornerRadius="10" backgroundColor="#c0c0c0">
<mx:Move id="moveLBL" target="{lblBox}"/>
<mx:SWFLoader id="cardCover" showBusyCursor="true" toolTip="" width="100%" horizontalCenter="0" top="0" height="100%" mouseOver="moveLBL.yTo=0; moveLBL.play();" mouseOut="moveLBL.yTo=-50; moveLBL.play();"/>
<mx:Canvas id="lblBox" x="0" y="-50" width="100" height="50" backgroundColor="#c40000">
<mx:Label id="cardLbl" width="100%" horizontalCenter="0" textAlign="center" height="30" verticalCenter="0"/>
</mx:Canvas>
</mx:Canvas>


не срабатывает :(хотя в корневом файле проекта такое обращение работает нормуль..

fishbounce
22.06.2006, 17:54
Вообще можно. Ты уверен, что у тебя срабатывают твои события mouseOver, mouseOut для swfLoader? Думаю, проблема в нем.

unKnow
23.06.2006, 12:25
спасиба разобрался - сам дурак
пока в SWFLoader - не загрузишь контент - овер не срабатывает
а я тестировал без загрузки контента :)