Toon posts:

[Flash] Banner als hyperlink, maar...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Flash banner van iemand gekregen die ik op een website wil zetten, en wel als hyperlink (dus erop klikken opent nieuw browservenster met link). Nu weet ik dat het niet mogelijk is om link tags (<a>) om een embedded object te zetten. Daar ik NIET aan de source van de SWF kan komen, kan ik onmogelijk een actionscript schrijven met dat doel. Gevolg: ik moet iets anders verzinnen. Maar wat... wie kan me een oplossing aan de hand doen?

Ohja.. website zelf is geschreven in notepad.exe (dus geen Dreamweaver toestanden oid)

  • André
  • Registratie: Maart 2002
  • Laatst online: 04-05 16:01

André

Analytics dude

Schrijf jij je website in notepad? :X

Dan heb je geen color highlighting, geen auto-indent, je kunt niet meerdere files tegelijk open hebben, enz :X

Maar verder zul je toch echt in de src van de flash moeten gaan editten wil je er een link aan hangen. Je kunt in sommige browsers wel een layer over de flash heen plaatsen maar netjes is anders.

Plaats eventueel de link er onder?

Verwijderd

Topicstarter
Link kan ik niet plaatsen, zit op een klein intranet :).
(en dat mag ik vast niet naar buiten brengen, dus laat ik dat ook maar zitten)

Notepad doet voor wat ik moet doen fijn... ok ik geef toe, ik gebruik ook wel eens vaker vim (wanneer ik op een *nix bak werk). Ben nog oldschool :D
Crimson editor is ook wel mooi voor html, maar voor ff een simpele hyperlink oid in te kloppen beetje overbodig ;)

Hoe werkt dat met die layers? Is dat in een bestaande website makkelijk te integreren of moet ik daarvoor kuren uit gaan halen? Zoja, dan zoekt men maar een andere oplossing met die flash file ;)

Verwijderd

Je kunt iets proberen met divs (layers) en een z-index (hoogte) en Javascript, maar zoals André al zeide gaat dit waarschijnlijk een ranzige oplossing worden die ongetwijfeld browsercompatibiliteitsprobelemen met zich mee brengt. Even vragen of-ie (m/v) er een link van wil maken in de FLA source is veruit de beste optie.

  • MaTriCX
  • Registratie: Augustus 2002
  • Laatst online: 18-07-2024
Je zou een container (vieze oplossing) over de flash file heen kunnen zetten en de flash-file ook in een container, zodat die twee elkaar overlappen. Of een <a... ><embed></a> kan volgens mij ook nog wel, maar is ook niet echt een lekkere optie...

Je kunt toch in de .fla file (source) een link toekennen aan het banner-gedeelte... dat lijkt mij een stuk makkelijker en bovendien nettere oplossing.

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 05-01 14:41
IIRC kan phpAdsNew de link in een flash file verbouwen. Kijk daar eens naar, met een beetje geluk zit er in phpAdsNew een stukje PHP om je link aan te passen.

Verwijderd

Topicstarter
bartvb schreef op dinsdag 12 juli 2005 @ 00:16:
IIRC kan phpAdsNew de link in een flash file verbouwen. Kijk daar eens naar, met een beetje geluk zit er in phpAdsNew een stukje PHP om je link aan te passen.
Dat snap ik niet helemaal.. euh.. wat bedoel je?

Verwijderd

Topicstarter
MaTriCX schreef op dinsdag 12 juli 2005 @ 00:02:
Je zou een container (vieze oplossing) over de flash file heen kunnen zetten en de flash-file ook in een container, zodat die twee elkaar overlappen. Of een <a... ><embed></a> kan volgens mij ook nog wel, maar is ook niet echt een lekkere optie...

Je kunt toch in de .fla file (source) een link toekennen aan het banner-gedeelte... dat lijkt mij een stuk makkelijker en bovendien nettere oplossing.
hmm die <a> tags eromheen werkt niet, dat was mijn eerste poging tot een dirty oplossing :)

container? klinkt me als veel werk.. en dat ga ik niet doen omdat anderen te lui zijn een behoorlijke flash file aan te leveren :)

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Ik neem toch aan dat het in de belang van diegene is die de file heeft aangeleverd dat er geklikt wordt.. dan vraag je er toch even 1 met een goede link. In het kader eigenbelang doen mensen veel ;)

My Fizion | My 3D prints | LinkedIn


  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Kan je die banner niet ff uitelkaar trekken met een swf ripper en er dan een knop inzetten? Kan me niet voorstellen dat een banner ingewikkeld inelkaar zit.

  • supergert
  • Registratie: December 2001
  • Niet online
Of zelf een movie maken waarin je de gewenste link maakt, plus daarachter een movieclip die m.b.v. loadMovie() de originele swf laat zien.

ZX81 > C64 > Amiga > BeBox > PowerMac > pc-klonen...


  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Wat je ook kan doen is de flashbanner in een containermovie laden, die dezelfde framerate en backgroundcolor van de banner zelf heeft.
In een hoger level laadt je dan een movie met een onzichtbare knop die linkt naar de gewenste url.

Ik heb ooit eens een systeempje gebouwd waarmee dit proces werd geautomatiseerd.
Hiervoor moet je dan eerst de framerate en backgroundcolor uit de flashbanner peuteren, zodat je die kunt meegeven aan de containermovie

Uitlezen van deze gegevens doe je zo in perl:
Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use Compress::Zlib;

# banner inlezen

my $gz = gzopen("$in{filename}", "rb") or die &error("Cannot open $file: $gzerrno\n");
$swf .= $buffer while $gz->gzread($buffer) > 0;
$gz->gzclose();

if (substr($swf, 0, 3) eq "CWS") { # banner in gecomprimeerd formaat
    $output = uncompress(substr($swf,8));
} else {
    $output = substr($swf,8);
}

# offset in swf file header bepalen
# blijkbaar verschilt de positie van background en framerate per file..

$offset = 0;
if (ord(substr($output, 9, 1)) ne "0") {
    $offset = -1;
}

$frame_rate = ord(substr($output, 10 + $offset, 1));

$background_color = &DoHex(substr($output, 15 + $offset, 1)) . &DoHex(substr($output, 16 + $offset, 1)) . &DoHex(substr($output, 17 + $offset, 1));

sub DoHex { # kan netter en korter, maar gaat ff om het idee..
    my $Hexval = sprintf("%x", ord($_[0]));
    if (length($Hexval < 2)) {
        foreach(length($Hexval)..1) {
            $Hexval = "0" . $Hexval;
        }
    }
    return($Hexval);
} # end DoHex

Op basis van deze gegevens kun je de html code voor de banner genereren, bijv:
Perl:
1
2
3
4
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=468 height=60>
<param name=movie VALUE="flashbanner.cgi?b_url=$in{filename}&l_url=$in{l_url}&f=$frame_rate">
<param name=quality VALUE=high> <param name=bgcolor VALUE=#$background_color>
</object>

In flashbanner.cgi lees je dan de containermovie in, en vervang je de framerate door de juiste waarde:
Perl:
1
2
3
4
5
6
7
8
9
10
open SWF, "container.swf";
binmode SWF;
$container = <SWF>;
close SWF;

$container = substr($container,0,18) . chr($in{f}) . substr($container,18);

print "Content-Type: application/x-shockwave-flash\n\n";
print $container;
exit;

variabelen b_url en l_url gebruik je in de containermovie om de juiste banner in te laden, en naar het juiste url door te linken :)

PS: bovenstaande code is onvolledig. maar denk dat het idee zo wel duidelijk is..

[ Voor 8% gewijzigd door bRight op 17-07-2005 14:25 ]


  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Bah, wat een smerige HTML. <embed> is niet eens HTML! Zo moeilijk is het toch niet, om cross-browser en W3C-compliant een flashbannertje neer te pleuren? :/

Enfin, die flash in een <div> pleuren en daar weer een onclick oid op gaat niet werken. Het flash-ding gaat buiten je browser om, dus die registreert die clicks niet. Die flash weer in een container-flash kieperen zou wel kunnen.

Maar waarom een flash-banner voor een klein intranetje?? Als je dan toch de aandacht wil trekken, waaorm niet een animated GIFje, of doe eens hip: een SVGtje?
Pagina: 1