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

Woozle

Старожил
Dam[И сказал(а):
eD":7atdrt4b]tags generator... tag - роспись в графити... вобщем он простейшим образом генерирует графити из зарание нарисованных букв...
так каким образом ты хочешь, чтоб появлялось изображение, если не через клавиатуру?
 

Dam[И]eD

Старожил
вопрос:
есть графический редактор, сделанный во флэше... можно ли (если да, то как) экспортировать изображение, созданное в редакторе или сохранять его в нём-же?
короче сэйв\лоад для swf приложений как сделать? :)
 

Woozle

Старожил
Ну через SharedObject можно в локале сохранять данные
 

Woozle

Старожил
собственно, я кошда-то делал графический редактор... извращенно и достаточно примитивно, но то, как сохранять, подгружать и выводить изображение, там есть
ftp://10.3.11.10/download/apiDrawing.rar
 

Woozle

Старожил
flash-ripper.com":3kxrg4kk сказал(а):
Macromedia + Adobe = 1 (updated again) Происходит интеграция двух передовиков креативного веб-дизайна и разработки: компании Adobe и Macromedia объединяются в одну компанию. В денежной системе координат это звучит как "Adobe покупает Мacromedia". Создан специальный мини-сайт, рассказывающий о процессе интеграции Adobe и Macromedia более подробно. В частности, утверждается, что культуры и лучшие практики разработки обеих компаний будут сохранены. Лично я очень надеюсь и верю, что новаторский дух Макромедии освежит консерваторов из Adobe. Это слияние также умешьшает шансы Microsoft подмять под себя векторную графику и анимацию с помощью обещанного ими Microsoft Sparkle. В документе с ответами на частые вопросы относительно слияния Adobe и Macromedia сказано, что Флэш станет ключевой платформой для разработки в объединенной компании. Флэш-проигрыватель останется самим собой и будет развиваться дальше. Сообщество разработчиков, прирученное Macromedia, разгонять не будут. Клиенты Макромедии смогут по-прежнему получить поддержку по старым телефонам компании. Офис Макромедии остается на старом месте. А флэш сделает следующий большой шаг вперед!
ftp://tms.dp.ua/incoming/img/adobe-eats ... -money.gif

кстати, говоря в цифрах, Adobe купил Macromedia аж за $3.4 млрд.:shock: Впечатляет? :)
 

Woozle

Старожил
www.flash-ripper.com":56xwvmdg сказал(а):
Возможности нового Flash Player 8 (Maelstrom), который вот-вот появится Совсем скоро появится новый Flash Player 8 (Maelstrom): Коротко о возможностях Flash Player 8: графические фильтры (типа размытия или тени), улучшение производительности, более качественная отрисовка шрифтов и оптимизация работы с видео. Размер проигрывателя по прежнему небольшой. Подробно: * Новые графические средства включают в себя эффекты типа "тень", "размытие", "свечение"; новые цветовые трансформации, новые режимы наложения (как в Photoshop). Все вышеперечисленное может комбинироваться друг с другом в "стек эффектов". Данные эффекты будут генерироваться на лету, так что время загрузки не возрастет. Новый API для изображений позволяет создавать собственные эффекты с помощью ActionScript. Поддерживаются дополнительные форматы графики, такие, как GIF, PNG, и progressive JPEG; * Повышение производительности: это касается рендеринга графики, скроллирования текста, отрисовки компонентов, выполнения ActionScript и (!) управления памятью. Введены так называемые "Bitmap surfaces": это возможность кэширования и растрового представления сложных форм -- для более быстрой отрисовки; * Улучшена читаемость шрифтов: это касается шрифтов в мелком размере. Тепер они отрисовываются четче. Кроме того, теперь возможно полноценное выравнивание текста и точное управление кернингом; * Улучшено видео: появилась поддержка VP6-video (высшее качество при меньшем траффике). Добавлен 8-битный альфа-канал, что позволяет легко накладывать видео поверх любого другого элемента, в том числе и поверх других видео (монтаж! такого еще не было); * Возможность закачивания и скачивания файлов: теперь Flash-приложение может запросить файл для загрузки, отображая диалоговое "Открыть файл". Приложения также могу предлагать пользователю скачать файл (при этом откроется диалоговое окно "Сохранить файл"). Это продвигает весь класс RIA (насыщенные интернет-приложения) далеко вперед! * Уважение к частной жизни: продвинутые средства управления позволяют блокировать нежелательную рекламу, выключить компьютер спамера, сберечь здоровье и нервы, достичь счастья -- в личной, и успеха -- в общественной -- жизни! Данный материал является выдержкой из большой и хорошей статьи "The Flash Platform" -- той самой, которая рекомендуется для распространения в мире потенциальных заказчиков а также будущих и настоящих работодателей.
 

Dam[И]eD

Старожил
getUrl ("http://localhost/", "_blank"); открывает урл в новом окне, ещё флэш может окрыть урл во фрейме, если в место "_blank" вписать имя фрейма.
вопрос:
этот фрейм нужно создать в самом флэш ролике? ели да, то как...

этот фрейм должен размещаца в одной html странице с роликом?если да, то как записать адрес этого фрейма параметры getUrl ?
 

Кекс

Старожил
Подскажите, как из флэш-ролика при наличии кнопки "Печать" (не команды флэш-плеера, а самодельной button) распечатать только тот кадр, в котором она была нажата?
 

Woozle

Старожил
Кекс":2ztqyvky сказал(а):
Подскажите, как из флэш-ролика при наличии кнопки "Печать" (не команды флэш-плеера, а самодельной button) распечатать только тот кадр, в котором она была нажата?
ну для этого лучше всего использовать класс PrintJob.Он правда доступен только в 7-м флэше, но пора, Миха, (если ты еще не перешел) переходить на 7-ку, а то уже скоро 8-й выйдет, а ты еще на эмыксе :) .
(если не знаешь) объекты класса создаются таким образом:
Код:
var printing:PrintJob = new PrintJob();
для того, чтобы назначить, чего надо печатать(какой фрагмент какого кадра) существеут метод addPage(target, area, options, frameNumber)
где:
target - клип, который надо напечатать
area - область кадра, которую надо распечатать. Ее граничные координаты(определенные относительно собственной системы координат) должны быть присвоены свойствам xMin, xMax, yMin, yMax, передаваемых в качестве параметра объекта(необязательный параметр, т.е. если ниче указывать не надо, пишем null).
options - тоже необязательный параметр, принимает true или false. Если true, то графига распечатается как растровая(т.е. там всякие цветовые эффекты, альфа каналы будут учитываться и все они распечатаются, но снизится качество распечатки векторной графики, как всякие кривые Безье и т.п.); если false - то как векторная, т.е. наоборот.
frameNumber - номер кадра, которой надо распечатать(чтобы распечатать N кадров, нужно N раз вызвать метод addPage).
Переходим к практике...
к примеру у тебя на основной временной диаграмме(на руте) лежит картинка, котору надо распечатать, и где-нить в уголке лежит кнопочка...
вешаем на кнопку(инстанс которой, к примеру, print_btn) сей скрипт:
Код:
print_btn.onRelease = function(){
	var printing:PrintJob = new PrintJob();
	if(printing.start()){/*собственно спрашиваем юзера хочет ли он распечатать картинку*/
		printing.addPage(_root, null, true, _root._currentframe);/*добавляем в список печатаемых страниц текущий кадр основной временной диаграммы(можно в качестве второго параметра указать объект координат, ограничивающих область распечатки, чтоб, к примеру, не распечаталась кнопка(пусть размер окна 550*400), т.е.
      printing.addPage(_root, {xMin:0, yMin:0, xMax:550, yMax:350}, true, _root._currentframe);*/
		printing.send();//печатаем
	}
}
если нажо для 6-ки, пиши

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

Dam[И сказал(а):
eD":2ztqyvky]getUrl ("http://localhost/", "_blank"); открывает урл в новом окне, ещё флэш может окрыть урл во фрейме, если в место "_blank" вписать имя фрейма. вопрос: этот фрейм нужно создать в самом флэш ролике? ели да, то как... этот фрейм должен размещаца в одной html странице с роликом?если да, то как записать адрес этого фрейма параметры getUrl ?
по идее, как я понимаю, страница по указаному адресу загружается во фрэйм на одной html странице с роликом, т.к. фрэймов в таком же понимании, как и в вэб-страницах, во флэш-мувиках не существует.
Как записать адресс, я точно не знаю... вот все, что я нашел по этому поводу:
метод getURL используйтся в такой форме: getURL("URL", window);
возможны следующие варианты window: _self..... name
name - новый документ будет загружен в окно или фрейм с именем "name". Если окна или фрейма с этим именем нет, то браузер откроет новое окно, присвоет ему имя "name" и загрузит целевой документ в него. Например:
getURL("http://www.gtn.ru", "left -_frame");
имя окна или фрейма не должно начинаться с символа "_", также учитывается регистр имени фрейма.
 

Кекс

Старожил
Woozle
Большое спасибо, но нужно именно для 6-ой версии! Был бы очень признателен. А то в том виде, как у меня сейчас, печатаются все кадры, которые я пометил как #p.

На 8-ую перейду, но 7-ую пропущу :)
 

Woozle

Старожил
Кекс":1aby2lwp сказал(а):
Woozle Большое спасибо, но нужно именно для 6-ой версии! Был бы очень признателен. А то в том виде, как у меня сейчас, печатаются все кадры, которые я пометил как #p. На 8-ую перейду, но 7-ую пропущу :)
да... к сожалению, в 6-ке можно только так и выбрать какой-то определенный кадр для распечатки, как в PrintJob, нельзя.
Поэтому хз... пихай нужную для распечатки графику в отдельный мувик... по-другому не знаю.
 

Кекс

Старожил
Мучаюсь над созданием кнопок "Назад" и "Вперед", которые осуществляют переход между просмотренными кадрами (т.е. работают так, как в браузере). Делаю так.
В первом кадре один раз создаю массив p, пока не определена переменная browse.
Код:
if (!browse) {
	p = new Array();
}
В каждом другом кадре к массиву прибавляю еще один элемент (i++), хранящий номер просмотренного кадра p=10:
Код:
if (browse != 1) {
	i++;
	browse = 0;
} else {
	if (i != 1) {
		i--;
	} else {
		i = 1;
	}
	browse = 0;
}
p[i] = 10;
В кнопке "Назад" пишу:
Код:
on (release) {
	browse = 1;
	gotoAndStop(p[i-1]);
}
В кнопке "Вперед" -
Код:
on (release) {
	gotoAndStop(p[i+1]);
}
Переменная browse используется для отслеживания нажатия именно этих кнопок, чтобы различить переходы по ним и по ссылкам из оглавления. Все работает, но в один прекрасный момент где-то спотыкается и переходы не функционируют. Возможно от того, что где-то стоит отключить кнопку во избежание глюков в значениях переменных, но где... Не могу додуматься. Подскажите, пожалуйста, что не так, или, может, есть готовое решение?
 

Dam[И]eD

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

Кекс

Старожил
Так и делаю. В каждом кадре.
p=10 - в 10-ом, p=20 - в 20-ом и т.д.
 

Woozle

Старожил
опять я опаздал :)
в общем я тыкал. тыкал и натыкал такую хрень
Код:
stop();
fr1.onRelease = function() {
	gotoAndStop(1);
	addFrame();
};
fr2.onRelease = function() {
	gotoAndStop(2);
	addFrame();
};
fr3.onRelease = function() {
	gotoAndStop(3);
	addFrame();
};
if (!p) {
	var p = [];
	p[0] = 1;
	var i = 0;
}
back.onRelease = function() {
	changeFrame(-1);
};
next.onRelease = function() {
	changeFrame(1);
};
function addFrame() {
	if (p[i] != _currentframe) {
		i++;
		if (p[i]) {
			p.length = i+1;
		}
		p[i] = _currentframe;
		checkButtons();
	}
}
function changeFrame(znak) {
	gotoAndStop(p[i+znak]);
	i += znak;
	checkButtons();
}
function checkButtons() {
	if (i == 0) {
		back.enabled = false;
		back._alpha = 50;
	} else {
		back.enabled = true;
		back._alpha = 100;
	}
	if (i+1 == p.length) {
		next.enabled = false;
		next._alpha = 50;
	} else {
		next.enabled = true;
		next._alpha = 100;
	}
}
checkButtons();
этот код типа пишется на первом кадре
back и next - это инстансы кнопок "вперед" и "назад"
fr1, fr2 и fr3 - это кнопки-сылки на кадры, которые должны запоминаться для возврата к ним
смысл таков, что надо просто в обработчик каждой кнопки-ссылки на запоминаемый кадр нужно пихать вызов функции addFrame() и все
вроде сбоев нет
 

Кекс

Старожил
Спасибо большое!! Попробую.
Еще б понять, что куда писать... :)
 

Woozle

Старожил
ну так яж писал :)
пишешь этот код в первый кадр... впринципе даже не весь, ибо здесь рабочие только 3 ф-ции addFrame(), checkButtons() и changeFrame(znak) и блок
Код:
if (!p) { 
   var p = []; 
   p[0] = 1; 
   var i = 0; 
}
поэтому только их и можно писать
но надо еще на кнопки взад/вперед повесить обработчик с вызовом ф-ции changeFrame(znak) так, что на кнопку вперед changeFrame(1), а назад - changeFrame(-1).
Ну и естевственно на свои кнопки-ссылки, которые производят переход на другой кадр, вешаешь обработчик с вызовом ф-ции addFrame() , чтобы кадры, на которые производится переход записывались в массив
 

Кекс

Старожил
Спасибо, попробовал.
Твой вариант тоже давал сбои :) Причем в тестовом мувике с 5 кнопками все ок, а в реальном проекте глючил.
Работоспособным оказался вариант, совмещения моего начального и твоего.
Собака была зарыта в том, что сбои происходили от лишнего нажатия на кнопки, в результате переменные принимали нежелательные значения и все шло псу под хвост.
Я даже это осознал со временем, но не мог грамотно написать функцию блокировки кнопок при определенных условиях :) (точнее, не саму функцию, а ее вызов)
 

Woozle

Старожил
и кстати.
вышла бэтка 8-го флэшплеера, правда она сейчас доступна только как плагин к браузеру http://www.macromedia.com/software/flas ... blic_beta/
это демки уже к 8-му флешплееру
http://antonvolkov.com/flash/glows1/
http://antonvolkov.com/flash/glows2/
http://antonvolkov.com/flash/glows3/
http://antonvolkov.com/flash/glows4/
http://antonvolkov.com/flash/avatarshadow/
http://antonvolkov.com/flash/roomglow/
но мало того... появилась возможность паблишить из 7-ки в 8-й флэш плеер. Для этого проведити сии инструкции http://www.osflash.org/doku.php?id=flas ... to-flash-8
и также появилась статья, в которой говорится как и что можно нового сделать http://www.valyard.ru/ru/flash8
 
A

Anonymous

Где можно нарыть прогу, кторой можно было бы флешевый ролик расковырять, музычку там вытащить кртиночки....

вроде видел где-то на форуме, теперь найти не могу поиск тут какой-то кривой :(
 
Верх