Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: gotha в Nov 12, 2008, 00:51



Титла: PHP ming - flash slideshow
Публикувано от: gotha в Nov 12, 2008, 00:51
Здравейте,
опитвам се да направя flash slideshow, което нон-стоп да цикли разни картинки. Благодарение на  този  ($2) скрипт успях да стигна до някъде.
Проблема е, че искам всеки слайд от новото видео да е различен линк към определена страница от сайта ми.
Примерно, имаме сайт за коли и в началото се зарежда анимация с най-яките и най-скъпи коли, който предлагаме, идеята е като се кликне на някоя от колите на снимките флаша да те препраща към съответната страница.
Ming ми е много мътна работа, флаша още повече.

Някой занимавал ли се е с ming и може ли да помогне ?


Титла: Re: PHP ming - flash slideshow
Публикувано от: neter в Nov 12, 2008, 14:14
Аз не бях разцъквал Ming досега, но ето докъде я докарах по твоя въпрос. От скрипта, който си дал, отвори файла class.flashslideshow.php. Добави в началото (но вътре в "class flashSlideShow" при останалите функции) такава функция
Код
GeSHi (PHP):
  1. function myFunction($azi, $buki, $vedi)
  2. {
  3. $glagoli = new SWFShape();
  4. $glagoli->setRightFill($glagoli->addFill($azi, $buki, $vedi));
  5. $glagoli->drawLine(300, 0);
  6. $glagoli->drawLine(0, 230);
  7.  
  8. return $glagoli;
  9. }
и във функцията "addImage" (единствено число, а не в "addImages") точно над реда
Код
GeSHi (PHP):
  1. $this->i = $this->movie->add($s);
сложи следните редове
Код
GeSHi (PHP):
  1. $myButton = new SWFButton();
  2. $myButton->addShape($this->myFunction(0xff, 0xff, 0xff), SWFBUTTON_UP | SWFBUTTON_HIT);
  3. $myButton->addAction(new SWFAction("getURL('http://{$filename}','_blank');"),SWFBUTTON_MOUSEUP);
  4. $this->i = $this->movie->add($myButton);
Както виждаш, за URL съм сложил да се ползва името на файла (което не е никакво URL), сложи си там твоята променлива, която съдържа нужното URL. Може да се наложи малко играчка с размерите за drawLine() във функцията "myFunction" ;)


Титла: Re: PHP ming - flash slideshow
Публикувано от: gotha в Nov 12, 2008, 21:06
Мерси много, работи супер.
Понеже документацията на ming e оскъдна и почти нищо не можах да разбера от нея, ми останаха само още 1-2 малки въпроса.
При така зададени параметри на drawLine(300, 0), дясната част от флаша не ми беше активна като линк, когато го промених на 550(колкото е ширината на флаша ми), стана. Та въпроса е, като първи параметър ширината на флаша ли трябва да се подаде или просто в конкретния случай съм нацелил нещо.
Питам защото ако първия параметър съвпада с ширината можем вместо 300 да сложим $this->width. Същото питане важи и за второто викане на drawLine.
Освен това не ми е ясно какво значение имат цветовете, които се подават към addFill. Пробвах бяло, черно - разлика нямаше никаква. Ако няма някаква идея, която не схващам, мисля да ги hardcode-на в метода, защото за момента не виждам смисъл да се подават от addImage.

Иначе, отново благодаря.
Само за справка, автора на скрипта каза, че не знае дали е възможно да се допише такава функционалност. :)
 [_]3 [_]3 [_]3


Титла: Re: PHP ming - flash slideshow
Публикувано от: neter в Nov 13, 2008, 00:13
Много правилно си се ориентирал. Както ти казах, аз не разбирам от Ming (какъв пропуск, а изглежда интересно), просто намерих нужните кодове и ги сглобих за целта. Относно размерите, да, съвсем правилно трябва да се използват $this->width и $this->height. Цветовете бяха от значение в примерните кодове за генериране на бутон, но в случая са без значение, тъй като не оставих видимите части на бутона. Ето какви модификации внесох по кода сега. За функцията myFunction():
Код
GeSHi (PHP):
  1. function myFunction()
  2. {
  3. $glagoli = new SWFShape();
  4. $glagoli->setRightFill(0, 0, 0);
  5. $glagoli->drawLine($this->width, 0);
  6. $glagoli->drawLine(0, $this->height);
  7.  
  8. return $glagoli;
  9. }
Трите променливи за цветовете съм ги махнал, защото не са нужни, но все пак в setRightFill() трябва да седи нещо, за да има бутона фон (макар и невидим), за да може да се цъка върху него. За стойности в setRightFill() може освен RGB стойности за цвят да се използва и градиент или картинка (с повечко играчка може самата картинка да влезе като видим фон на бутона, но в случая не е нужно, защото излишно ще увеличи размера на кода). По редовете за инстанцията на самия бутон внесох следните промени:
Код
GeSHi (PHP):
  1. $myButton = new SWFButton();
  2. $myButton->addShape($this->myFunction(), SWFBUTTON_HIT);
  3. $myButton->addAction(new SWFAction("getURL('http://{$filename}','_blank');"),SWFBUTTON_MOUSEUP);
  4. $this->i = $this->movie->add($myButton);
Тук, от фоновете на бутона, съм оставил само този за HIT (невидимият фон, който указва областта, върху която може да се цъкне) и съм махнал указателите за цветовете, тъй като така или иначе не се използват във функцията. Успех ;)


Титла: Re: PHP ming - flash slideshow
Публикувано от: gotha в Nov 13, 2008, 04:56
Супер стана.
Наистина много ми помогна, имаш една бира от мене :)