Вход

Просмотр полной версии : вынесение On (Press) в *.as файл


Dims
25.10.2007, 18:41
Доброго времени суток.

Проблемка такая:

У меня есть куча всяческих банеров, мне надо прописать в каждый ф-цию открытия URL в зависимости от параметра передаваемого в FlashVars.

<PARAM NAME=FlashVars VALUE="link=http://www.name.com">

А в отдельном *.as файле (например UrlFunc.as) вынести такую ф-цию

_root.On (press)
{
_root.GoToUrl("_blank", _root._level0.link);
}

И в каждом мувике подключать её через

import UrlFunc;

Будет ли такое работать? Сейчас Flash-a нет под рукой чтобы проверить?
Хочу просто узнать мнение проффесионалов.

Заранее спасибо.

Nirth
25.10.2007, 18:55
Я прошу прощения но
ХАХАХАХАХАХА

ответ
не будет.

Fernando Costa
25.10.2007, 19:04
используйте нормальные кнопочные события (onPress, onRelease), там все можно нормально подключать и имплементить. А ТАКИЕ извращения это конечно глупость.

Dims
25.10.2007, 19:07
2 Nirth :

:quiet: Замечательный ответ.
А существует ли какое-нибудь изящное решение, чтобы внося минимум изменений в FLA файл (желательно просто import XXXXXX;) наследовалась данная функциональность ?

Nirth
25.10.2007, 19:10
Ладно, не буду над вами измыватся. просто по злорадствую


_root.On (press) //метода _root.on не существует, кроме того у рута нету мышиных событий
{
_root.GoToUrl("_blank", _root._level0.link); //метода _root.GoToUrl тоже нету, кроме того свойства _root._level0 тоже нету
}

//Код:
import UrlFunc; //эта строчка импортирует класс UrlFunc.as (именно класс)

Хемуль
25.10.2007, 19:19
Первый кадр главного таймлайна:

include "UrlFunc.as";

var bannerButton:MovieClip = createRectangleMovieClip("hitButton", this, this.getNextHighestDepth(), 0, 0, Stage.width, Stage.height, 0xff0000, 0);

bannerButton.onRelease = function()
{
goToURL(this._parent.link);
}

function createRectangleMovieClip(newName:String, parentClip:MovieClip, parentClipDepth:Number, newX:Number, newY:Number, newWidth:Number, newHeight:Number, newColor:Number, newAlpha:Number):MovieClip
{
var newClip:MovieClip = parentClip.createEmptyMovieClip(newName, parentClipDepth);
newClip.beginFill(newColor);
newClip.moveTo(0, 0);
newClip.lineTo(newWidth, 0);
newClip.lineTo(newWidth, newHeight);
newClip.lineTo(0, newHeight);
newClip.lineTo(0, 0);
newClip.endFill();
newClip._x = newX;
newClip._y = newY;
newClip._alpha = newAlpha;
return newClip;
}


UrlFunc.as:

function goToURL(url:String):Void
{
getURL(url, "_blank");
}


PS:
Только вот, хоть убейте, не могу понять, зачем это выносить в отдельный файл...

Dims
26.10.2007, 12:53
PS:
Только вот, хоть убейте, не могу понять, зачем это выносить в отдельный файл...

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

Я делаю пустой мувик, куда параметром передаю мувик с баннером, и линк, который будет открываться при нажатии. Загружаю баннер, и вешаю на мувик с ним событие при клике.

Единственная для меня сейчас загвоздка: как мне растянуть мой мувик по размерам загружаемого? (width, height)

terbooter
26.10.2007, 14:09
решетку у инклуда забыли (#include)

Kikasso
26.10.2007, 14:40
И ";" нельзя ставить в строке с include

Dims
26.10.2007, 14:51
Ребят, я бы попросил Вас обсуждать здесь не синтаксис, а логику.

Как мне в один мувик подгрузить другой, так, чтобы родитель унаследовал все параметры загружаемого? (размеры, скорость и т.д.)

Kikasso
26.10.2007, 15:12
Ребят, я бы попросил Вас обсуждать здесь не синтаксис, а логику. Для логики есть хороший раздел "флейм", а без правильного синтаксиса код работать не будет, хоть тресни.

Как мне в один мувик подгрузить другой, так, чтобы родитель унаследовал все параметры загружаемого? (размеры, скорость и т.д.)
Какая скорость может быть у клипа??
Любые действия с клипом можно делать только после его загрузки.
Читайте про MovieClipLoader, событие onLoadInit.

Далее - клип, в который вы грузите флешку, пустой. Его ширина и высота 0. Если не трогать масштаб, то после загрузки высота и ширина станут такими, как надо.

Хемуль
26.10.2007, 18:20
Ребят, я бы попросил Вас обсуждать здесь не синтаксис, а логику.
Да чего? Пусть поправляют. А то я же тебе написал тоже без тестов во Флеше. А вдруг вы так примете для себя, а потом будете мучаться. На то и форум.