![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 18
|
Расплывчатое название темы, но вот суть:
при вызове функции в спрайте отрисовываются прямоугольники. package { import flash.display.Sprite; import flash.display.Graphics; import flash.events.MouseEvent; public class drRecMenu_lines extends Sprite { private var container:Sprite; private var itemXpos:uint; private var contPositionY:uint; /* private var it1:*; private var it2:*; private var it3:*; private var it4:*; private var it5:*;*/ public function drRecMenu_lines(contPositionY:uint=580) { container=new Sprite(); this.contPositionY=contPositionY; container.y=contPositionY; drawItem(1,0xFFFF00,1); drawItem(2); drawItem(3); drawItem(4); drawItem(5); this.addChild(container); container.addEventListener(MouseEvent.MOUSE_OVER, runDebug); //it3.addEventListener(MouseEvent.MOUSE_OVER, runDebug); //it4.addEventListener(MouseEvent.MOUSE_OVER, runDebug); } private function drawItem(itemCount:uint,fillColor:uint=0x000000, itemAlpha:Number=.8):void { if (itemCount<5) { itemXpos=(itemCount-1)*180; container.graphics.beginFill(fillColor, itemAlpha); container.graphics.drawRect(itemXpos,0,180,60); container.graphics.endFill(); container.graphics.moveTo(itemXpos,contPositionY); container.graphics.lineStyle(1,0xCCCCCC, .2); container.graphics.lineTo(itemXpos,contPositionY+60); } else { itemXpos=(itemCount-1)*180; container.graphics.beginFill(fillColor, itemAlpha); container.graphics.drawRect(itemXpos,0,1000,60); container.graphics.endFill(); } } private function runDebug(evt:MouseEvent):void { trace("Mouse is over the "+evt.target.name+" item");//Mouse is over the instance1 item } } } Пробовал так: package { import flash.display.Sprite; import flash.display.Graphics; import flash.events.MouseEvent; public class drRecMenu_lines extends Sprite { private var container:Sprite; private var itemXpos:uint; private var contPositionY:uint; private var it1:*; private var it2:*; private var it3:*; private var it4:*; private var it5:*; public function drRecMenu_lines(contPositionY:uint=580) { container=new Sprite(); this.contPositionY=contPositionY; container.y=contPositionY; it1=drawItem(1,0xFFFF00,1); it2=drawItem(2); it3=drawItem(3); it4=drawItem(4); it5=drawItem(5); this.addChild(container); //container.addEventListener(MouseEvent.MOUSE_OVER, runDebug); it3.addEventListener(MouseEvent.MOUSE_OVER, runDebug); it4.addEventListener(MouseEvent.MOUSE_OVER, runDebug); } private function drawItem(itemCount:uint,fillColor:uint=0x000000, itemAlpha:Number=.8):void { if (itemCount<5) { itemXpos=(itemCount-1)*180; container.graphics.beginFill(fillColor, itemAlpha); container.graphics.drawRect(itemXpos,0,180,60); container.graphics.endFill(); container.graphics.moveTo(itemXpos,contPositionY); container.graphics.lineStyle(1,0xCCCCCC, .2); container.graphics.lineTo(itemXpos,contPositionY+60); } else { itemXpos=(itemCount-1)*180; container.graphics.beginFill(fillColor, itemAlpha); container.graphics.drawRect(itemXpos,0,1000,60); container.graphics.endFill(); } } private function runDebug(evt:MouseEvent):void { trace("Mouse is over the "+evt.target.name+" item");//Mouse is over the instance1 item } } } Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
2. Что значит запись если drawItem возвращает void? 3. Звездочки при объявлении типа переменной - чтобы обмануть компилятор? Ну поздравляю, вы его обманули))) Никогда больше так не делайте. Компилятор - ваш лучший друг и советник. 4. Названия классов пишутся с большой буквы. 5. Создавайте столько спрайтов, сколько будет "кнопок". Рисуйте в них прямоугольники. Добавляйте спрайты на сцену, назначайте им слушатели. Воспользуйтесь циклом.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
Цитата:
it1=drawItem(1,0xFFFF00,1); it2=drawItem(2); it3=drawItem(3); it4=drawItem(4); it5=drawItem(5); чтобы прослушать события, рисуйте кнопки в разных спрайтах Добавлено через 42 секунды Вот до меня уже всё в принципе сказали) |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 18
|
В конце концов я это вымучал и сделал во фла-файле. Почему у меня не компилировалось когда я пытался в классе применить Твин лайт?
import flash.display.Sprite; import flash.display.Graphics; import flash.events.MouseEvent; import flash.display.Shape; import com.greensock.TweenLite; var container:Sprite; var itemXpos:uint; var contPositionY:uint; var VerPromo:Shape; var Gallery:Shape; var Info:Shape; var Blog:Shape; var FreeSpace:Shape; var LinesDev:Shape; var btnWidth:uint=200; var btnHeight:uint=60; drRecMenu_lines(); function drRecMenu_lines(contPositionY:uint=450) { container=new Sprite(); VerPromo=new Shape(); Gallery=new Shape(); Info=new Shape(); Blog=new Shape(); FreeSpace=new Shape(); this.contPositionY=contPositionY; container.y=contPositionY; this.addChild(container); container.addChild(VerPromo); container.addChild(Gallery); container.addChild(Info); container.addChild(Blog); container.addChild(FreeSpace); drawItem(VerPromo,1,0xFFFFFF,1); drawItem(Gallery,2); drawItem(Info,3); drawItem(Blog,4); drawItem(FreeSpace,5); drawLines(); container.scaleX=.1; TweenLite.to(container, .9, {scaleX:1}); } function drawItem(ShapeName:Shape,itemCount:uint,fillColor:uint=0x000000, itemAlpha:Number=.8):void { if (itemCount<5) { itemXpos=(itemCount-1)*btnWidth; ShapeName.graphics.beginFill(fillColor, itemAlpha); ShapeName.graphics.drawRect(itemXpos,0,btnWidth,btnHeight); ShapeName.graphics.endFill(); } else { itemXpos=(itemCount-1)*btnWidth; ShapeName.graphics.beginFill(fillColor, itemAlpha); ShapeName.graphics.drawRect(itemXpos,0,19000,btnHeight); ShapeName.graphics.endFill(); } } function drawLines():void { LinesDev=new Shape(); addChild(LinesDev); LinesDev.scaleX=.1; for (var i:uint=0; i<5; i++) { LinesDev.graphics.moveTo(i*btnWidth,contPositionY); LinesDev.graphics.lineStyle(1,0xCCCCCC, .3); LinesDev.graphics.lineTo(i*btnWidth,contPositionY+btnHeight); } TweenLite.to(LinesDev, .9, {scaleX:1}); } К стати, есть ли какие-то преимущества того, чтобы писать классы если делаешь флеш-сайт??? |
|
|||||
|
Предполагаю почему в этой теме больше ни кто ни стал отвечать. Автор, знаете такую операцию: "вопрос-ответ"? Что касается кнопок, суть ясна. Не ясен вопрос:
Цитата:
Добавлено через 16 минут добавлю малость ответов. Цитата:
далее: Цитата:
button.addEventListener(MouseEvent.MOUSE_OVER, runDebug); button.addEventListener(MouseEvent.MOUSE_OUT, runDebug); button.addEventListener(MouseEvent.MOUSE_DOWN, runDebug); Цитата:
тогда какого .... вы в конструктор основного класса пытаетесь передать параметры?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 18
|
Отдельно отрисованный прямоугольник - это экземпляр чего? Все того же одного спрайта. Волш правильно подсказал.
ООП читал, хотел сдалать по модели MVC - обработчики событий в отдельном классе. Цитата:
IDE Flash CS5. Последний раз редактировалось asterion; 29.03.2011 в 10:19. |
|
|||||
|
Цитата:
__________________
...вселенская грусть |
|
|||||
|
Цитата:
Цитата:
Цитата:
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|