![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2010
Сообщений: 54
|
Нашел не большой исходник гармошки. немного подкорректировал его под свои нужды. но не как не могу сменить цвета колонок на изображение. Подскажите пожалуйста как это сделать?
import gs.TweenLite; import gs.easing.*; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; // Присвоить цвет меню, текст, ссылки var menuArray:Array = [ {col: "заместо цвета путь до картинки", menuText: "первая", url: "site.ru", target: "_blank"}, {col: "0xA4BAA2", menuText: "следующая", url: "site.ru", target: "_blank"}, {col: "0x569492", menuText: "еще одна...", url: "site.ru", target: "_blank"}, {col: "0x41505E", menuText: "четвертая", url: "site.ru", target: "_blank"}, {col: "0x383245", menuText: "тут пятая", url: "site.ru", target: "_blank"}, {col: "0x566E54", menuText: "ну вот и все", url: "site.ru", target: "_blank"}]; var slideArray:Array = new Array(); // Ширена флэш var mystageWidth:int = 560; //ширена ячейки var initWidth:Number = Math.round(mystageWidth / menuArray.length); var slideClass:SlideClass; //переменная промежутка var border:Number = 10; // Высота меню var sheight:Number = 300; // Текст меню y-position var slideTextY:Number = sheight - 20; // Текст меню x-position var slideTextX:Number = 0; // Цвет текста меню var menuTextColor:uint = 0xFFFFFF; // Шрифт var menuTextFont:String = "Trebuchet MS"; // Размер шрифта var FontSize:int = 24; // Цвет тени текста var textShadowCol:uint = 0x232323; // Цвет градиента меню //var sGradientStartCol:uint = 0xffffff; // Прозрачность градиента var alphas:Array = [.2, 0]; // Заливка градиента var ratios:Array = [0, 54]; // Определяет масштабный коэффициент для открытых слайдов var slideScale:Number = 3; // Время анимации опрокидывания слайдов var slideInTime:Number = .5; // Время анимации развертывание слайдов var slideOutTime:Number = .5; // Время анимации опрокидывания текста var textInTime:Number = 1; // Время анимации возврата текста var textOutTime:Number = .1; function makeMenu ():void { for (var i = 0; i < menuArray.length; i++) { //var sGradCols:Array = [sGradientStartCol, menuArray[i].col]; var sGradCols:Array = [menuArray[i].col]; slideClass = new SlideClass(menuArray[i].col, initWidth-10, sheight, menuTextColor, menuTextFont, FontSize, textShadowCol, sGradCols, alphas, ratios); slideClass.x = i * initWidth; slideClass.buttonMode = true; slideClass.mouseChildren = false; slideClass.slideText.text = menuArray[i].menuText; slideClass.slideText.rotation = -90; slideClass.slideText.autoSize = TextFieldAutoSize.LEFT; slideClass.slideText.x = slideTextX; slideClass.slideText.y = slideTextY; slideArray.push (slideClass); slideArray[i].sID = i; slideArray[i].textW = slideClass.slideText.width; slideArray[i].textH = slideClass.slideText.height; addChild (slideClass); slideArray[i].addEventListener (MouseEvent.MOUSE_OVER, slideOver); slideArray[i].addEventListener (MouseEvent.MOUSE_OUT, slideOut); slideArray[i].addEventListener (MouseEvent.MOUSE_UP, slideUp); } } function slideOver (event:MouseEvent):void { var target:Object = event.currentTarget; for (var i in slideArray) { var ni:int; var newWidth:Number = Math.round(initWidth * slideScale); var remainWidth:Number = (mystageWidth - newWidth) / (menuArray.length -1); if (target == slideArray[i]) { TweenLite.to (target, slideInTime, {x: target.sID * remainWidth, ease: Expo.easeOut}); TweenLite.to (target.slidebg, slideInTime, {width: newWidth-10, ease: Expo.easeOut}); //TweenLite.to (target.slideText, textInTime, {x: (newWidth - target.textH) * .5, rotation: 0, ease: Bounce.easeOut}); } else { TweenLite.to (slideArray[i].slidebg, slideInTime, {width: remainWidth-10, ease: Expo.easeOut}); //TweenLite.to (slideArray[i].slideText, textOutTime, {x: (remainWidth - target.textW) * .5, rotation: -90, ease: Expo.easeOut}); } if (i > target.sID) { ni += 1; TweenLite.to (slideArray[i], slideInTime, {x: (target.sID * remainWidth + newWidth) + ((ni - 1) * remainWidth), ease: Expo.easeOut}); } if (i < target.sID) { TweenLite.to (slideArray[i], slideInTime, {x: i * remainWidth, ease: Expo.easeOut}); } } } function slideOut (event:MouseEvent):void { for (var i in slideArray) { TweenLite.to (slideArray[i], slideOutTime, {x: i * initWidth, ease: Expo.easeOut}); TweenLite.to (slideArray[i].slidebg, slideOutTime, {width: initWidth-10, ease: Expo.easeOut}); //TweenLite.to (slideArray[i].slideText, textOutTime, {x: (initWidth - slideArray[i].textW) * .5, rotation: -90, ease: Expo.easeOut}); } } function slideUp (event:MouseEvent):void { var target:Object = event.currentTarget; var url:String = menuArray[target.sID].url; var htmltarget:String = menuArray[target.sID].target; navigateToURL ((new URLRequest(url)), htmltarget); } makeMenu (); package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.filters.DropShadowFilter; import flash.geom.Matrix; import flash.display.Graphics; import flash.display.GradientType; import flash.display.SpreadMethod; public class SlideClass extends Sprite { private var col:uint; private var initWidth:int; private var sheight:int; public var slidebg:Sprite; private var menuTextColor:uint; private var menuTextFont:String; private var FontSize:int; public var sID:int; public var textW:Number; public var textH:Number; private var sGradient:Sprite; private var fillType:String = GradientType.LINEAR; private var sGradCols:Array; private var alphas:Array; private var ratios:Array; private var spreadMethod:String = SpreadMethod.REFLECT; private var matr:Matrix; public var slideText:TextField; private var menuTextFormat:TextFormat; private var textShadowCol:uint; private var slideTextFilter:DropShadowFilter; public function SlideClass (col, initWidth, sheight, menuTextColor, menuTextFont, FontSize, textShadowCol, sGradCols, alphas, ratios):void { slidebg = new Sprite(); slidebg.graphics.beginFill (col, 1); slidebg.graphics.drawRect (0, 0, initWidth, sheight); slidebg.graphics.endFill (); sGradient = new Sprite(); matr = new Matrix(); matr.createGradientBox (initWidth * .5, 0, 0, 0, 0); sGradient.graphics.beginGradientFill (fillType, sGradCols, alphas, ratios, matr, spreadMethod); sGradient.graphics.drawRect (0, 0, initWidth, sheight); menuTextFormat = new TextFormat(); menuTextFormat.align = TextFormatAlign.LEFT; menuTextFormat.font = menuTextFont; menuTextFormat.size = FontSize; menuTextFormat.color = menuTextColor; slideText = new TextField(); slideText.embedFonts = true; slideText.antiAliasType = AntiAliasType.ADVANCED; slideText.defaultTextFormat = menuTextFormat; slideText.autoSize = TextFieldAutoSize.LEFT; slideTextFilter = new DropShadowFilter(3, 45, textShadowCol, 1, 2, 2); slideText.filters = [slideTextFilter]; slidebg.addChild(sGradient); addChild (slidebg); addChild (slideText); } } } |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
В SlideClass нужно отрисовку изображений делать.
Опс, сразу не разглядел.
__________________
hauts.ru Последний раз редактировалось Hauts; 06.06.2012 в 18:33. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 54
|
что то типа этого?!
а как его внедрить в этот класс? |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Вместо
sGradient = new Sprite(); matr = new Matrix(); matr.createGradientBox (initWidth * .5, 0, 0, 0, 0); sGradient.graphics.beginGradientFill (fillType, sGradCols, alphas, ratios, matr, spreadMethod); sGradient.graphics.drawRect (0, 0, initWidth, sheight); sGradient = new Sprite(); var loader:Loader = new Loader(); loader.load(new URLRequest(col)); sGradient.addChild(sGradient) ![]()
__________________
hauts.ru |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 54
|
матерится: (((
Тип не найден или не является константой времени компиляции: Loader. Вызов предположительно неопределенного метода Loader. Вызов предположительно неопределенного метода URLRequest. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 54
|
да я потом понял внедрил их, но результата нет. фото не показывает, только сообщение в выводе:
Error #2044: Необработанный IOErrorEvent:. text=Error #2035: URL-адрес не обнаружен. Добавлено через 5 минут так работает но с косяками, попробую разобраться. позже напишу что получилось: |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 54
|
ни фига не разбираюсь с динамическими объектами. Кто сможет помочь как мой скрипт приблизить к:
http://mutlu-milano.com/ когда объекты раскрываются картинка не подвижна. я так думаю используются маски. как динамически засунуть каждую картинку в маску? мой вариант: dynamic_sliding_menu.zip |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|