PDA

Просмотр полной версии : переопределить getURL


chudesno
11.01.2008, 15:39
Здравствуйте.
Есть задача: нужно переопределить getURL так, чтобы вместо перехода по ссылке этот адрес просто выводился в консоль.

Проблема в том что таких функций две: одна в мувиклипе, другая глобальная.

Такой код срабатывает:

MovieClip.prototype.getURL = function (s) {
trace (s);
};
this.getURL("http://microsoft.com");


Но в большинстве случаев getURL вызывается без this, т.е., видимо, как глобальная.

trace (_global.getURL) выводит undefined

Я пробовал так:

ASSetPropFlags(_global, null, 6, 1);
for (thisObject in _global) {
trace(thisObject);
}


Т.е по идее должно вывести все, что лежит в _global.. и getURL'а там нет..

Подскажите, пожалуйста, можно ли переопределить getURL глобальный? Если да, то как?

iNils
11.01.2008, 16:29
А зачем? :)

Fernando Costa
11.01.2008, 16:42
А зачем? :)
я так понимаю для локального тестирования

chudesno
11.01.2008, 16:45
Делаем флешку, она должна грузить свфки и проигрывать их, а если те пытаются по ссылке перейти, то вот такую штуку выводить вместо перехода.. Галлерея какая-то должна получиться :) Не знаю, чесно, зачем.. Мож и для тестирования.

Fernando Costa
11.01.2008, 17:00
я бы переписал так для локального тестирования

function navigateToURL(site:Srting){
if(_root.IS_LOCAL){
trace(site)
return;
}
getURL(site)
}

IS_LOCAL - переменная во флешварс установленая в false. И вместо функции getURL использовал бы уже navigateToURL

а, ну еще параметры впихнуть можно (_blank _self) ;)

etc
11.01.2008, 19:49
getURL является низкоуровневой функцией и представлена в виде отдельного действия в байткоде. Т.е. переопределить её подобным образом невозможно.

iNils
11.01.2008, 19:53
Ну... если написать свой компилятор, то конечно можно будет. trace же mtasc переопределил.