Paweł B.

Paweł B. Specjalista ds.
analiz sprzedażowych

Temat: Problem z podlinkowaniem banera

Witam serdecznie,

chciałem powrócić raz jeszcze do tematu tysiące razy przerabianego na różnych forach i grupach dyskusyjnych - mam problem z podlinkowaniem banera zrobionego we Flashu.

Na początku powiem, że korzystam z Flasha CS5 (wersja trial - 30 dni).

Wykonałem prosty baner, który chciałem umieścić na stronie jako link. Nie znam się na Action Script, dlatego opierałem się na gotowych rozwiązaniach dostępnych w internecie. Poniżej przedstawiam opis kolejnych wykonywanych przeze mnie czynności oraz problemy na jakie napotkałem:

1. Otwarłem przygotowany wcześniej baner we Adobe Flash
2. Dodałem nową warstwę (ponad innymi warstwami) - nazwałem ją "guzik"
3. Na nowo-utworzonej warstwie dodałem nowy obiekt - prostokąt, który przykrył cały obszar baneru
4. Prostokąt przekonwertowałem na symbol - "button" (w polu nazwy wpisałem "guzik")
5. Ustawiłem właściwość alpha guzika na 0%
6. Zmieniłem pozycję instance name na "guzik"
7. Kliknąłem w pierwszej komórce warstwy "guzik" i z menu podręcznego wybrałem Actions
8a. Wpisałem następujący kod:

on(release)
{
getURL("http://www.wp.pl/","_blank");
}

CRTL+ENTER (baner się załadował, ale po kliknięciu w jego obszarze, nie otwarła się przeglądarka), otrzymałem również następujące komunikaty o błędach:

Scene 1, Layer 'guzik', Frame 1, Line 1 1180: Call to a possibly undefined method on.
Scene 1, Layer 'guzik', Frame 1, Line 1 1120: Access of undefined property release.
Scene 1, Layer 'guzik', Frame 1, Line 3 1180: Call to a possibly undefined method getURL.

8b. Wpisałem inny kod:

guzik.onRelease = function()
{
getURL("http://www.wp.pl/","_blank");
}

CRTL+ENTER (podobnie jak w poprzednim przypadku: baner się załadował, ale po kliknięciu w jego obszarze, nie otwarła się przeglądarka), otrzymałem również następujące komunikaty o błędach:

Scene 1, Layer 'guzik', Frame 1, Line 1 1120: Access of undefined property guzik.
Scene 1, Layer 'guzik', Frame 1, Line 3 1180: Call to a possibly undefined method getURL.

Wg autorów tych przykładów - powinny one działać bez zarzutu - nie wiem więc gdzie popełniam błąd :(

Przepraszam, za długiego posta, ale chciałem opisać mój problem w miarę szczegółowo. Jestem początkującym użytkownikiem Flasha, dlatego proszę o pisanie odpowiedzi prostym językiem :).

Z góry dziękuję i pozdrawiam
PawełPaweł B. edytował(a) ten post dnia 16.07.10 o godzinie 13:08
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: Problem z podlinkowaniem banera

twój baner to projekt w Action Script2 czy 3? Tu masz przykłady dla as2 które nie będą działać dla as3

movieClipName.addEventListener(MouseEvent.CLICK, callLink);

function callLink:void {
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Error occurred!");
}
}


Jerzy Wierzchowski edytował(a) ten post dnia 16.07.10 o godzinie 10:26
Paweł B.

Paweł B. Specjalista ds.
analiz sprzedażowych

Temat: Problem z podlinkowaniem banera

pracuję w AS3 - w okienku ustawień Action Scripta nie mogę wybrać innego AS. Wersja 3 jest zalecana. Chyba, że wersję AS zmienia się w jakiś inny sposób...

Rzeczywiście przedstawiony przez Ciebie kod nie działa u mnie, otrzymuję następujące komunikaty o błędach:

Scene 1, Layer 'guzik', Frame 1, Line 1 1084: Syntax error: expecting leftparen before colon.
Scene 1, Layer 'guzik', Frame 1, Line 1 1084: Syntax error: expecting identifier before leftbrace.
Scene 1, Layer 'guzik', Frame 1, Line 1 1084: Syntax error: expecting rightparen before leftbrace

Czy mogę zrobić coś jeszcze, żeby link zadziałał?
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: Problem z podlinkowaniem banera

na warstwie guzik masz coś jeszcze poza moim kodem albo źle coś wkleiłeś

zamieniłeś "movieClipName" na guzik (ba tak nazywa się twój przycisk)? Coś z nawiasami jest nie tak w pierwszej linijce albo z kropką.
dokładnei powinno byc tak:

guzik.addEventListener(MouseEvent.CLICK, callLink);

function callLink:void {
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Error occurred!");
}
}
Jerzy Wierzchowski edytował(a) ten post dnia 16.07.10 o godzinie 10:57
Przemysław Sidorowicz

Przemysław Sidorowicz Najtrudniejsze za
nami.

Temat: Problem z podlinkowaniem banera

bt_btn.addEventListener(MouseEvent.CLICK, callLink);
function callLink(eve:Event):void {
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Error occurred!");
}
}

Takie coś na pewno ci zadziała w AS3.
bt_btn to nazwa guzika o którym mówisz ty masz pewnie inna nazwę.
Paweł B.

Paweł B. Specjalista ds.
analiz sprzedażowych

Temat: Problem z podlinkowaniem banera

Dziękuję za podpowiedzi.

W przypadku kodu:

guzik.addEventListener(MouseEvent.CLICK, callLink);

function callLink:void {
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Error occurred!");
}
}


niestety dalej nie działa :(, rzeczywiście za pierwszym razem nie podmieniłem nazwy, jednak nawet po zmianie, nie zadziałało, wyświetlając te same komunikaty o błędach (na pewno nie dodawałem żadnego innego kodu. Każdą próbę nowego kodu "wrzucam" do nowego pliku).

w przypadku kodu:

bt_btn.addEventListener(MouseEvent.CLICK, callLink);
function callLink(eve:Event):void {
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Error occurred!");
}
}


DZIAŁA!!! Ale... niestety nie w przeglądarce :( Po opublikowaniu, plik .exe otwiera okienko przeglądarki z właściwą stroną. Niestety kiedy otwieram plik w przeglądarce, kliknięcie w baner nie powoduje żadnej reakcji. Banery flash zamieszczone na innych stronach WWW działają bez zarzutu.

Czy tym razem problem tkwi w flash playerze? Nie sądzę, sprawdzałem działanie na kilku niezależnych komputerach i efekt był ten sam.
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: Problem z podlinkowaniem banera

nie korzystam prawie w ogóle z funkcji navigateToURL ale śrubuj w opcjach publish w zakładce flash ustawić "Access network only" bo domyślnie jest local. Może to pomoże.
Przemysław Sidorowicz

Przemysław Sidorowicz Najtrudniejsze za
nami.

Temat: Problem z podlinkowaniem banera

DZIAŁA!!! Ale... niestety nie w przeglądarce :( Po opublikowaniu, plik .exe otwiera okienko przeglądarki z właściwą stroną. Niestety kiedy otwieram plik w przeglądarce, kliknięcie w baner nie powoduje żadnej reakcji. Banery flash zamieszczone na innych stronach WWW działają bez zarzutu.

Czy tym razem problem tkwi w flash playerze? Nie sądzę, sprawdzałem działanie na kilku niezależnych komputerach i efekt był ten sam.


A czy na stronie nie powinno być wersji .swf w zamian za .exe
Sprawdziłem i w sumie nawet .exe działa w przeglądarce.Przemysław Sidorowicz edytował(a) ten post dnia 16.07.10 o godzinie 12:07
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: Problem z podlinkowaniem banera

Przemysław Sidorowicz:
DZIAŁA!!! Ale... niestety nie w przeglądarce :( Po opublikowaniu, plik .exe otwiera okienko przeglądarki z właściwą stroną. Niestety kiedy otwieram plik w przeglądarce, kliknięcie w baner nie powoduje żadnej reakcji. Banery flash zamieszczone na innych stronach WWW działają bez zarzutu.

Czy tym razem problem tkwi w flash playerze? Nie sądzę, sprawdzałem działanie na kilku niezależnych komputerach i efekt był ten sam.


A czy na stronie nie powinno być wersji .swf w zamian za .exe
eeee.... nie umieścisz pliku wykonywalnego na stronie bo nie wykona się on w przeglądarce tylko będzie jako plik do ściągnięcia.
Pan Paweł napisał że jeśli odpala exe z dysku do wszytko działa tj otwiera się przeglądarka z odpowiednią stroną zaś jeśli obsadza plik swf na stronie omawiana akcja nie wywołuje nic.

Jeszcze mały tip: Polecam zainstalować wtyczkę flasha z debugerem ze strony adobe i usunąć blok try catch. Po odpaleniu strony z banerem kliknąć na niego i jeśli jest błąd to wywali okienko o jego rodzaju.
Jak mówiłem nie używałem tej funkcji(może kiedyś raz) więc więcej nie mogę pomóc:) Dosyałem do dokumentacji adobe(http://www.adobe.com/livedocs/flash/9.0/ActionScriptLa...Jerzy Wierzchowski edytował(a) ten post dnia 16.07.10 o godzinie 12:13
Paweł B.

Paweł B. Specjalista ds.
analiz sprzedażowych

Temat: Problem z podlinkowaniem banera

Przemysław Sidorowicz:
DZIAŁA!!! Ale... niestety nie w przeglądarce :( Po opublikowaniu, plik .exe otwiera okienko przeglądarki z właściwą stroną. Niestety kiedy otwieram plik w przeglądarce, kliknięcie w baner nie powoduje żadnej reakcji. Banery flash zamieszczone na innych stronach WWW działają bez zarzutu.

Czy tym razem problem tkwi w flash playerze? Nie sądzę, sprawdzałem działanie na kilku niezależnych komputerach i efekt był ten sam.


A czy na stronie nie powinno być wersji .swf w zamian za .exe

Oczywiście ;) zamieściłem plik *.swf oraz *.htm

nie korzystam prawie w ogóle z funkcji navigateToURL ale śrubuj w opcjach
publish w zakładce flash ustawić "Access network only" bo domyślnie jest
local. Może to pomoże.

Dzięki wielkie!! Teraz działa poprawnie!!

Bardzo Wam dziękuję za ekspresową pomoc. Męczyłem się z tym problemem od wczoraj.

Pozdrawiam serdecznie!
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: Problem z podlinkowaniem banera

Nie ma za co i niech moc będzie z Tobą:)
http://www.youtube.com/user/ImprovEverywhere
Dawid Szczepaniec

Dawid Szczepaniec właściciel gr4.pl

Temat: Problem z podlinkowaniem banera

Wybaczie, że odkopuję dość stary temat, ale mam problem ze zmuszeniem do otwarcia w tym samym oknie, prosze o pomoc jak zmodyfikować podawany przez Was kod, żeby otworzyć URL w tym samym oknie:


sport_btn.addEventListener(MouseEvent.CLICK, callLink);
function callLink(eve:Event):void
{
var url:String = "http://www.wp.pl";
var request:URLRequest = new URLRequest(url);
try
{
navigateToURL(request, '_parent');
}
catch (e:Error)
{
trace("Error occurred!");
}
}


ani _parent ani _self nie chce mi działać..

dodam, że jeśli szybko skompiluje przez ctrl+enter, to otwiera mi zakładkę, a po wrzuceniu na serwer taki link nie przekierowuje nigdzie.. w ustawieniach publikacji mam "tylko sieć lokalna"

btw. znalazłem też taki kod, który również działa tylko otwierając w nowym oknie:
import flash.events.MouseEvent;
import flash.net.URLRequest;

zdrowie_btn.addEventListener(MouseEvent.CLICK,zdrowie_fcn);

function zdrowie_fcn(event:MouseEvent):void
{
navigateToURL(new URLRequest("o-nas.html"), "_self");
}
Dawid (idek) Szczepaniec edytował(a) ten post dnia 07.05.11 o godzinie 17:13
Paweł Rakoczy

Paweł Rakoczy Student, Śląska
Wyższa Szkoła
Zarządzania im. Gen.
Jerzeg...

Temat: Problem z podlinkowaniem banera

powinieneś podać pełny adres URL wraz z protokołem (http://)Paweł Rakoczy edytował(a) ten post dnia 08.05.11 o godzinie 19:34

Następna dyskusja:

problem z Adobe Flash Play...




Wyślij zaproszenie do