Flash: вопросы и ответы

Tutty

Бывалый
мне нравится выражение полное оптимизма :
тогда вроде точно сбоев нет.

Добавлено спустя 3 часа 30 минут 41 секунду:

а теперь у тебя после 6-ой пишет
Неверно указан адрес. Загрузка Image7.jpg невозможна
 

Woozle

Старожил
ну так все задумано. Уменя просто отсутствуют фотки с 7-й по 21-ю(дальше по 60-ю есть). Удалил, чтобы показать, что все работает корректно и при каких-то сбоях и тп.
 

Ooa

Старожил
Утром Дембицкий скинул ссылку. Просто ссылку без слов.
Скачал по ссылке, оказалось что это Flash 9, думаю вот блин ща поюзаю. Сходил неторопясь за пивом, пришёл, сел за комп, установил.
Пока устанавливал думал как классно что я один из немногих, кто может попробовать нашу прелесть раньше других.
Запустил. Интерфейс ущёл в адоб, такое ощющение, что сидиш за фотошопом с встроиным таймлайном. Куча всего нового, интересного, и не понятного.

Вот такой мне приснился сон, интересно к чему бы это ?

Добавлено спустя 6 минут 24 секунды:

кстати, девятый плэер уже вышел. значит девятый флэш будет в сентябре-октябре.
 

Woozle

Старожил
ага, вышел... хотя это просто плээер 8.5 beta 3, но уже в девятый переименованный. Кстати, заметил, что в контекстном меню "About Adobe Flash Player 9".
Ну и еще к слову:
неновая, но все же довольно интересная ссылка Собрание сочинений о флэше.Особенно интересны переведенные уроки разработчиков великой игрушки N :)
И еще: вышла книжка ActionScript 3 Cookbook
Название: Рецепты ActionScript 3
Издательство: О'Рэйли
Авторы: Joey Lott, Keith Peters, Darron Schall
as3cb_cover.jpg

И, как говорит тов. Antares(aka Майкл Клишин), "через сколько лет это щастье опубликуют на русском языке?"
 

Murz

Старожил
Ooa":fhio9xd2 сказал(а):
Вот такой мне приснился сон, интересно к чему бы это ?

Гм.. Сложно сказать :eek:

Но, то, что это, безусловно, депресивно и готично, это факт ! 8) :lol:
 

Woozle

Старожил

Ooa

Старожил
Сделал програмку в восьмом флэше, использовав все его графические возможности.
Те у кого есть восьмой флэш могут вставить этот код в первый кейфрэйм, поставить фпс 100 и запустить :)

вот результат http://relevance4.com/thesoulgames.html
всего 2КБ !!!

// Конфиг // Если значение "true", то заполняется случайными числами // Если значение "false", то используются введённые параметры // max - количество элементов // step - количество шагов, до изменения траектории // steplength - размер шага в пикселях // die - шанс смерти элемента // dietime - продолжительность жизни элемента, перед смертью // rnd = "true" rnd = "false" if(rnd == "true"){max = random(40) + 10}else{max = 31} if(rnd == "true"){step = random(26) + 4}else{step = 10} if(rnd == "true"){steplength = random(11)/10}else{steplength = 0.5} if(rnd == "true"){die = random(200)}else{die = 100} if(rnd == "true"){lifetime = random(500)}else{lifetime = 250} logotext = "relevance4.com :: моя никчёмная идея" crateAmibas(); createText(); // Исполняемая часть function onEnterFrame() { moveAmibas(); if(lifetime <= 0){destroyAmibas();}else{lifetime -= 1} if(max >= 2)this.statustext._alpha = this.statustext._alpha - 1 } // Генерируем траектории элементов function reset() { this["fiX" + i] = this.relevance4["x" + i]._x + random(step + 1) - step/2 this["fiY" + i] = this.relevance4["x" + i]._y + random(step + 1) - step/2 test(); } // Не даём элементам уйти за пределы экрана и оторваться друг от друга function test() { if(this["fiX" + i] < 15)reset() if(this["fiX" + i] > 385)reset() if(this["fiY" + i] < 15)reset() if(this["fiY" + i] > 235)reset() this["ht" + i] = 0 for(a = 1; a < max; a++){ if(a != i)if(this.relevance4["x" + i].hitTest(this.relevance4["x" + a]))this["ht" + i] = 1 } if(this["ht" + i] == 0){ if(i == 1){a = 2}else{a = 1} blX = this.relevance4["x" + a]._x - this.relevance4["x" + i]._x; if(XtoX < 0)XtoX = XtoX*(-1) blY = this.relevance4["x" + a]._y - this.relevance4["x" + i]._y; if(YtoY < 0)YtoY = YtoY*(-1) blZ = a for(a = 1; a < max; a++){ if(a != i){ XtoX = this.relevance4["x" + a]._x - this.relevance4["x" + i]._x; if(XtoX < 0)XtoX = XtoX*(-1) YtoY = this.relevance4["x" + a]._y - this.relevance4["x" + i]._y; if(YtoY < 0)YtoY = YtoY*(-1) if(XtoX < blX)if(YtoY < blY)XtoX = blX; YtoY = blY; blZ = a } } this["fiX" + i] = this["fiX" + blZ] this["fiY" + i] = this["fiY" + blZ] }} // Управляем элэментами function moveAmibas() { for (i = 1; i < max; i++){ if(this["fiX" + i] == undefined)reset(); test() if(this.relevance4["x" + i]._x > this["fiX" + i])this.relevance4["x" + i]._x = this.relevance4["x" + i]._x - steplength if(this.relevance4["x" + i]._x < this["fiX" + i])this.relevance4["x" + i]._x = this.relevance4["x" + i]._x - (-steplength) if(this.relevance4["x" + i]._y > this["fiY" + i])this.relevance4["x" + i]._y = this.relevance4["x" + i]._y - steplength if(this.relevance4["x" + i]._y < this["fiY" + i])this.relevance4["x" + i]._y = this.relevance4["x" + i]._y - (-steplength) if(this.relevance4["x" + i]._x == this["fiX" + i])if(this.relevance4["x" + i]._y == this["fiY" + i])reset(); if(this["ArcX" + i] == this.relevance4["x" + i]._x)reset() if(this["ArcY" + i] == this.relevance4["x" + i]._y)reset() this["ArcX" + i] = this.relevance4["x" + i]._x this["ArcY" + i] = this.relevance4["x" + i]._y }} // Создаём элементы function crateAmibas() { this.createEmptyMovieClip("background", this.getNextHighestDepth()); with (background) { beginFill(0x000000, 100); lineTo(0, 0); lineTo(408, 0); lineTo(408, 258); lineTo(0, 258); lineTo(0, 0); endFill(); matrix = {a:100, b:500, c:900, d:900, e:50, f:50, g:0, h:0, i:410}; beginGradientFill("radial", [0x016D6D, 0x003333], [100, 100], [0, 0xFF], matrix, "pad", "RGB", 0); moveTo(4, 4); lineTo(404, 4); lineTo(404, 254); lineTo(4, 254); lineTo(4, 4); endFill(); } this.createEmptyMovieClip("relevance4", this.getNextHighestDepth()); with (relevance4) { this.relevance4.createEmptyMovieClip("x1", this.getNextHighestDepth()); with (relevance4.x1){ beginFill(0xFFFFFF, 100); lineTo(10, 0); lineTo(28, 0); lineTo(40, 10); lineTo(40, 28); lineTo(28, 40); lineTo(14, 40); lineTo(0, 28); lineTo(0, 10); lineTo(10, 0); endFill(); for(a = 2; a < max; a++){ this.relevance4.x1.duplicateMovieClip("x"+a, this.relevance4.getNextHighestDepth()); }}} this.relevance4.cacheAsBitmap = true; this.relevance4.filters = [new flash.filters.BlurFilter(30, 30, 2)]; this.relevance4.blendMode = 8 for (i = 1; i < max; i++){ this.relevance4["x" + i]._x = 185 this.relevance4["x" + i]._y = 110 }} // Создаём текст function createText() { this.createTextField("glowtext", this.getNextHighestDepth(), 4, 238, 402, 40); var fmt:TextFormat = new TextFormat(); glowtext.selectable = false glowtext.text = logotext fmt.color = 0xFFFFFF; fmt.font = "Arial" fmt.size = 11 fmt.align = "right" glowtext.setTextFormat(fmt); this.glowtext.filters = [new flash.filters.GlowFilter(3, 5, 5,5,4,3)]; this.glowtext._alpha = 10 statustxt = "это всего лишь одна никчёмная идея..." statusText() } function destroyAmibas() { dietime = 100 if(destroy != "true"){ d1 = random(die); d2 = random(die); if(d1 == d2){destroy = "true"; lifetimer = dietime;} } if(destroy == "true"){ if(lifetimer == dietime){ var str:String = max.toString();; word = "осталось " + max + " элементов" if(str.charAt(str.length -1) == "1")word = " элемент" if(str.charAt(str.length -1) == "2")word = "осталось " + max + " элемента" if(str.charAt(str.length -1) == "3")word = "осталось " + max + " элемента" if(str.charAt(str.length -1) == "4")word = "осталось " + max + " элемента" if(firsttime == undefined){ statustxt = "идея оказалась никому не нужной. скоро её нестанет..." firsttime = 1 }else{statustxt = "идея постепенно умирает. " + word} if(max < 10){ choise = random(4) if(choise == 1)statustxt = "идея скоро умрёт. она никому не нужна..." if(choise == 2)statustxt = "идея почти умерла. почти..." if(choise == 3)statustxt = "маленькое пятно. ненужная идея..." } if(max < 2)statustxt = "\n \n всего лишь идея... \n умерла, так и не родившись... \n может быть, это было лекарство от спида... \n может быть новый вид топлива... \n а может быть, это был всего лишь детский рисунок, \n так и не нарисованный из-за сломавшегося карандаша... \n \n relevance4.com \n философия." statusText() this.relevance4["x" + (max-1)].beginFill(0x000000, 100); this.relevance4["x" + (max-1)].lineTo(10, 0); lineTo(28, 0); lineTo(40, 10); this.relevance4["x" + (max-1)].lineTo(40, 28); lineTo(28, 40); lineTo(14, 40); this.relevance4["x" + (max-1)].lineTo(0, 28); lineTo(0, 10); lineTo(10, 0); this.relevance4["x" + (max-1)].endFill(); } this.relevance4["x" + (max-1)]._alpha = lifetimer lifetimer -= 1 if(lifetimer == 0){ removeMovieClip(this.relevance4["x" + (max-1)]); max -= 1 destroy = "false" }}} function statusText(){ removeMovieClip(this.statustext); this.createTextField("statustext", this.getNextHighestDepth()+1, 4, 10, 402, 200); var fmt:TextFormat = new TextFormat(); this.statustext.selectable = false this.statustext.multiline = true this.statustext.text = statustxt fmt.color = 0xFFFFFF; fmt.font = "Arial" fmt.size = 12 fmt.align = "center" this.statustext.setTextFormat(fmt); this.statustext.filters = [new flash.filters.GlowFilter(3, 5, 5,5,4,3)]; this.statustext._alpha = 100 }
 

Gpuxa

Старожил
Не знаю, сюда ли, но пропал звук во всех флэшках, причём как на компьютере, так и на сайтах звука нет. Смотрел в настройки звука, там всё Enabled. Кто-нить сталкивался ?
 

Zeddd

Старожил
подскажите , как сделать интересный переход между страничками , то есть чтобы при переходе постепенно закрывалась одна страничка и открывалась другая
чёрт объяснить тяжело , но кто понял помогите
заранее спасибо
 

Ooa

Старожил
this.bl1 - первая страничка, которая закрывается
this.bl2 - вторая страничка, которая открывается

вставляется в первый кейфрэйм this'a:

function onEnterFrame(){
if(my_alpha == undefined)my_alpha = 0
this.bl1._alpha = 100 - my_alpha
this.bl2._alpha = my_alpha
my_alpha += 10
}
 

Zeddd

Старожил
не я имел ввиду чтобы между ними что-то типа связующего клипа было , ну чтоб не засорять тебе мозг посмотри переход на своём сайте , вот что-то типа такого
блин не знаю как объяснить
 

Ooa

Старожил
хм... для заставки на моём сайте нет стандартного скрипта или медиашаблона. всё отрисованно покадрово во время воспаления креативного нерва.

всё в _root:
layer1: мувиклип с анимацией смены страниц. допустим, с 10ю кадрами. назовём мувик my_movie1
layer2: контент и кнопки навигации, button1 и button2

_root.activeframe - кадр, на который нужно перейти после нажатия на кнопку.

_root.button1.onRelease = function(){_root.activeframe = 1; _root.my_movie1.play();}

_root.button2.onRelease = function(){_root.activeframe = 2; _root.my_movie1.play();}

my_movie1: в мувике рисуем анимацию, постепенно закрывающую весь контент. а потом его открывающую (например, занавес опускается, а потом поднимается)
в первом кадре stop();
в кадре, где занавес полностью закрывает контет:
a = _root.activeframe
_root.gotoAndStop(a);
вот и всё... проще может быть только trace("hello, world");
(:)

Добавлено спустя 2 минуты 39 секунд:

Zeddd":251ki80u сказал(а):
подскажите , как сделать интересный переход между страничками

хм... или вопрос не по технической части? т.е. просишь подсказать, каким можно сделать такой переход? :)
но тут, уже, не только за спасибо помощь (;
 

Woozle

Старожил
имхо это вообще вопрос очень неоднозначный, все зависит от креативности и знаний. Можно сделать какие-нибудь универсальные способы, типа,как писал выше Копирайт, одна страничка постепенно делается прозрачной, другая наоборот появляется; можно поизвращаться с масками и сделать какие-нить фишки, типа как на http://nora.gtn.ru (смотреть в ие), или что-нибудь более интересное с использованием масок(к примеру, появляющаяся кисть будет как-будто перекрашивать страницу, и это тоже можно сделать универсальным способом). Если смена страниц означает простая смена текста, то можно поизвращаться с заменой текста по символам или по словам; есть очень классные приемы с использованием эффекта переворачивания страниц, как на http://silin.fatal.ru/gb/index.html (я в восторге), можно поизвращаться и применить это даже к целым страницам с картинками, текстом и подобной туфтой. Можно также поизвращаться (что-то у меня все изврат да изврат (:) ) с псевдо-3d.
Ну а что качается неуниверсальных приемов, то тут границ нет творчеству, делай что хочешь и как хочешь, чем, собственно, и прятен флэш. Приемов туева куча, ходи по флэш-сайтам, смотри, везде есть что-то интересное.
 

Ooa

Старожил
Woozle":35vpt699 сказал(а):
имхо это вообще вопрос очень неоднозначный, все зависит от креативности и знаний.
истину глаголишь :)
Woozle":35vpt699 сказал(а):
Приемов туева куча, ходи по флэш-сайтам, смотри, везде есть что-то интересное.
пожалуй, зачастую это единственный источник, но в неумелых руках это заканчивается банальным плагиатом ):
 
Верх