Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Реализация портфолио (http://www.flasher.ru/forum/showthread.php?t=103279)

Snut 02.11.2007 01:22

Реализация портфолио
 
Вложений: 1
или с чего начать?

Не уверен что в тот раздел, но т.к. собираюсь на сей задаче разобраться в ас3 поэтому постить решил сюда, если что, уважаемые модеры, перенесите.

Самому себе поставленна задача - создать динамическое портфолио. примерный вид - как на картинке ниже. Вроде понятно, нужны классы:
1) класс прелоадера
2) тот что парсит ХМЛ с входными данными
3) класс отражений
4) класс одной работы
5) класс выстраивающий внешний вид портфолио
6) класс отвечающий за заблюривание
7) класс отвечающий за перемещение от одной работы к другой
8) класс для отправки сообщений на почту
9) класс выстраивающий всю флешку, DocumentClass

вот по сему у меня возник вопрос ко всем кто когда либо делал сайты на ас2 ас3, с чего начать и как структурировать работу?

DarkLight 02.11.2007 01:28

Вобщем-то идея разделения нормальная. А вообще я обычно вначале сажусь с листом бумаги, и делаю так: сверху рисую диаграмму действий типа загрузка -> отображение списка -> загрузка изображений куда надо и т п, затем рядом рисую какие данные куда идут. После этого набрасываю диаграммы классов, на ходу придумывая названия и ищу тот функционал, который реализовывал раньше, чтобы не писать заново. После этого кладу эту схему на видном месте и по нейй работая, внося коррективы по необходимости.

2morrowMan 02.11.2007 01:30

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

Snut 02.11.2007 01:32

to DarkLight, ну я обычно все это структурирую при помощи Visio, аналогов к сожалению не знаю
to 2morrowMan, ну почемуже? разве есть смысл допкстим соединять в один класс перемещение к разным работам и заблюривание?

DarkLight 02.11.2007 01:35

5 - осторожно, чтобы не разжирел сильно
6,7 - можно слить в один класс со статическими методами имхо, т к это наложение эффектов...и отражения даже сюда всунуть

Snut 02.11.2007 01:43

to DarkLight, да вообщем вариант, просто насколько они будут массивны?

да и еще, в любом случае при написании 3+5+6 понадобиться одна единственная математическая формула которая будет и менять размер и задавать силу блюра и скорость уезда при перемещении от одной работы к другой. вот что-то с ней пока тяжко....

а также вариант ли нарисовать рамочку для работы там сделать этакий холдер в который будут грузиться превьюшки и линковать его с классом или программно все это отрисовывать?

PS если быть до конца честным, как это все реализовать пока не имею представления, но готов учиться....

DarkLight 02.11.2007 01:45

ну а хотя бы со средой решение принято? Flash или Flex? от этого тоже многое зависит...

Snut 02.11.2007 01:48

to DarkLight, flash с flex'ом у меня пока боооооольшие непонятки, даж подойти как к нему не знаю, вчера пытался поставить второй билдер, результат, в конце установки Try версии скачанной с сайта adobe, ребут компьютера. всмысле самостоятельный, ничем не обусловленный... взял и перезагрузился... аж 2 раза..

DarkLight 02.11.2007 01:55

Ну если во флеше, собственно такая структура вполне подойдет, при этом класс работы линкуем к символу, я думаю.

Snut 02.11.2007 02:02

ну да, это чисто теоретически - проще.

etc 02.11.2007 10:36

Тут в принципе больше пяти классов не нужно.

Snut 02.11.2007 13:01

__etc, а можно внести чуть больше конкретики?) ну из основных, document class, preloader class а остальные три?)

etc 02.11.2007 14:27

Картинка, текст, кнопка.

Snut 02.11.2007 15:35

__etc, хех:)

Snut 02.11.2007 22:02

Вложений: 1
ну вот как-то так, сорит за качество, форум больше не дает...

etc 02.11.2007 22:41

Ты делаешь портфолио с нормальным дизайном или клиент-серверное приложение по запуску ядерных ракет?

Snut 02.11.2007 23:25

__etc, а ты хочешь сказать что качество проектирования, коддинга и планирования задачи для самого себя как в первом так и во втором случае должно быть разное? я так не считаю, к любой задаче надо подходить основательно.

etc 02.11.2007 23:44

Я хочу сказать о том, что не надо использовать микроскоп для забивания гвоздей.

Snut 03.11.2007 00:18

__etc, логично :)

начал писать потихонечку.

Код:

package ru.snut.src{
        import flash.display.MovieClip;
        import flash.events.*;
        import flash.text.TextField;
        import flash.utils.setInterval;
        import flash.utils.clearInterval;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
       
        dynamic public class Preloader extends MovieClip {
                private var intervalOutId:int;
                private var loaderOutY:Tween;
                private var loaderOutAlpha:Tween;
               
                public function Preloader():void {
                        addEventListener(Event.ENTER_FRAME, Update);
                }
               
                private function Update(e : Event):void {
                        var bLoaded:Number = stage.loaderInfo.bytesLoaded;
                        var bTotal:Number = stage.loaderInfo.bytesTotal;
                        var s:String = "";
                        var percent:Number = 0;
                        if (bTotal>0) {
                                percent = Math.floor(bLoaded/bTotal*100);
                                s = percent+ "%";
                        }
                       
                        this.txt.text= s;
                        this.bar.gotoAndStop(percent+1);
                        // Если полностью загрузились, то проигрываем уезд лоадера, а потом переходим на второй кадр
                        if (bLoaded == bTotal || bTotal==0) {
                                if (parent is MovieClip){
                                        (parent as MovieClip).stop();
                                        tweeningOut();
                                }
                                intervalOutId = setInterval(loadOut, 1000);
                        }
                       
                }
               
                private function loadOut(){
                        removeEventListener(Event.ENTER_FRAME, Update);
                                if (parent is MovieClip){
                                        (parent as MovieClip).gotoAndStop(2);
                                }
                }
               
                private function tweeningOut(){
                        loaderOutY = new Tween(this, "y", Bounce.easeInOut, this.y, this.y + stage.width / 2, 1000, true);
                        loaderOutAlpha = new Tween(this, "alpha", Bounce.easeInOut, this.alpha, 0, 1000, true);
                }
        }
}

класс залинкован с символом в библиотеке

понять не могу почему не проигрываются твины...

etc 03.11.2007 00:20

Я бы ещё и от AS3 отказался. AS2 прекрасно справится с задачей.
Диаграммы рисовать, конечно, научились, а вот функции именовать и код типизировать, увы, ещё нет.

DarkLight 03.11.2007 00:32

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

Snut 03.11.2007 00:36

__etc, если посмотреть первый пост сообщения то данный проект затевается для того чтобы разобраться с ас3...

ну есть небольшие огрехи по поводу типизация, но я же прошу сильно не пинать, а помочь научиться...

etc 03.11.2007 01:38

Так учитесь. Пишите типы, которые возвращает функция, права доступа, откажитесь от dynamic (он реально нужен крайне редко).

Snut 03.11.2007 01:59

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

а приваты, паблики, войды уже везде расписал:)


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

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