Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.06.2012, 18:17
flasheroff вне форума Посмотреть профиль Отправить личное сообщение для flasheroff Найти все сообщения от flasheroff
  № 1  
Ответить с цитированием
flasheroff

Регистрация: Sep 2010
Сообщений: 54
По умолчанию как внедрить фото в массив?

Нашел не большой исходник гармошки. немного подкорректировал его под свои нужды. но не как не могу сменить цвета колонок на изображение. Подскажите пожалуйста как это сделать?
Код AS3:
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 ();
slideClass:
Код AS3:
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);
		}
	}
}

Старый 06.06.2012, 18:29
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
В SlideClass нужно отрисовку изображений делать.

flasheroff, как именно вы хотите изображения ставить? Подгружаемые?

Опс, сразу не разглядел.
__________________
hauts.ru


Последний раз редактировалось Hauts; 06.06.2012 в 18:33.
Старый 06.06.2012, 19:01
flasheroff вне форума Посмотреть профиль Отправить личное сообщение для flasheroff Найти все сообщения от flasheroff
  № 3  
Ответить с цитированием
flasheroff

Регистрация: Sep 2010
Сообщений: 54
что то типа этого?!
Код AS3:
var sGradCols:Loader = new Loader();
sGradCols.load(new URLRequest(menuArray[i].col));
addChild(sGradCols);
а как его внедрить в этот класс?

Старый 06.06.2012, 19:24
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Вместо
Код AS3:
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);
Попробуйте
Код AS3:
sGradient = new Sprite();
var loader:Loader = new Loader();
loader.load(new URLRequest(col));
sGradient.addChild(sGradient)
За достоверность не ручаюсь
__________________
hauts.ru

Старый 06.06.2012, 19:35
flasheroff вне форума Посмотреть профиль Отправить личное сообщение для flasheroff Найти все сообщения от flasheroff
  № 5  
Ответить с цитированием
flasheroff

Регистрация: Sep 2010
Сообщений: 54
матерится: (((
Тип не найден или не является константой времени компиляции: Loader.
Вызов предположительно неопределенного метода Loader.
Вызов предположительно неопределенного метода URLRequest.

Старый 06.06.2012, 21:30
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
В блок кода, где import`ы идут добавьте недостающие
__________________
hauts.ru

Старый 06.06.2012, 21:56
flasheroff вне форума Посмотреть профиль Отправить личное сообщение для flasheroff Найти все сообщения от flasheroff
  № 7  
Ответить с цитированием
flasheroff

Регистрация: Sep 2010
Сообщений: 54
да я потом понял внедрил их, но результата нет. фото не показывает, только сообщение в выводе:
Error #2044: Необработанный IOErrorEvent:. text=Error #2035: URL-адрес не обнаружен.

Добавлено через 5 минут
так работает но с косяками, попробую разобраться. позже напишу что получилось:
Код AS3:
sGradient = new Loader();
sGradient.load(new URLRequest(col));
addChild(sGradient);

Старый 06.06.2012, 22:36
flasheroff вне форума Посмотреть профиль Отправить личное сообщение для flasheroff Найти все сообщения от flasheroff
  № 8  
Ответить с цитированием
flasheroff

Регистрация: Sep 2010
Сообщений: 54
ни фига не разбираюсь с динамическими объектами. Кто сможет помочь как мой скрипт приблизить к:
http://mutlu-milano.com/
когда объекты раскрываются картинка не подвижна. я так думаю используются маски.
как динамически засунуть каждую картинку в маску?
мой вариант:
dynamic_sliding_menu.zip

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:39.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.