Просмотр полной версии : Поставить ссылочки
chillwill
21.08.2006, 14:27
Нужна помощь. Есть пунктики меню и никак не могу
поставить ссылки на них правильно (гетУРЛ).
Посмотрите исходник плз и укажите на исправления в коде.
15025
Спасибо.
chillwill
21.08.2006, 20:25
Я понял, что меня переместили)
Плз, ну кроме перемещения, может у кого есть время
подсказать?
planerolling
21.08.2006, 23:15
не могу открыть(....попробуй
on (release) {
getURL("http://сайт.ru", "_blank ";
}
chillwill
21.08.2006, 23:33
Блин, там посложнее случай, я бы даже не сказал, что для начинающих... плз, посмторите исходник...
Ээээ.... ну что тебе сказать... откоментить по-немецки - это конечно гражданский поступок %)
Но фик с ним =)
- Зачем присваивать мувиклипу функции твоего меню? а вдруг тебе понадобится создать мувиклип без этих функций, а у тебя они уже зашиты в прототип класса. Не лучше ли создать свой собственный класс - подкласс мувиклипа?
- Какой сумасшедший юзверь станет пользоваться таким меню? Это целый арканоид "попади по менюшке", не для слабонервных, вобщем =)
- Вобщем, если нужно присвоить всем объектам класса мувиклип стандартный для всех обработчик события onRelease, например, то сделать это можно так:
На этапе создания экземпляра класса присваемой какой-нибудь внутренней переменной этого экземпляра значение (в нашем случае - ссылку) а в онрелизе прописанном для всех - функцию посылающую юзера по этой ссылке.
Вот простенкий пример, но я не советую так делать, а все-таки сделать свой класс для меню и прописать эту функцию кастомному классу, а не всем мувиклипам:
MovieClip.prototype._link = "http://www.nowhere.com";
for (var _l2=0; _l2<4; _l2++){
var _l3:MovieClip = _root.attachMovie("menue", "menue"+_l2+"_mc", 5+_l2, {_link:"http://www.mysite.com/index/#"+_l2, _y:25*_l2});
}
MovieClip.prototype.onRelease = function(){
getURL(this._link, "_blank");
}
Проблема еще и в том, что созданый таким образом онрелиз никакими силами удалить не удасться (только переопределить, но этого часто недостаточно)
Забавное меню )
Очень интересно как ты интегрируешь его в дизайн.
chillwill
22.08.2006, 01:43
Не очень интересно как я его интегрирую, я покажу сразу как заработают ссылки.
wvxvw, ммм, а можно посоветовать как можно сделать, а не как не надо делать плз?
я бы за немецкие комменты руки отрывал, чем вас английский язык не устраивает.
В код я не врубился,
chillwill
22.08.2006, 02:51
Неужели никто не может помочь? :(
2 chillwill:
http://www.kirupa.com/developer/oop/AS1OOPClassesWithMCs2.htm
Ну, можешь это пока что почитать, сделаю пример чуть попожже
var MenueM:Object = new Object();
MenueM.prototype = new MovieClip();
MenueM.prototype.onRelease = function() {
getURL(this._link, "_blank");
_root._l2.text = this._link;
};
MenueM.prototype.dir = "right";
MenueM.prototype.onEnterFrame = function() {
switch (this.dir) {
case "right" :
if (this._x<Stage.width-this._width) {
this._x += 5;
} else {
this.dir = "left";
}
break;
case "left" :
if (this._x>0) {
this._x -= 5;
} else {
this.dir = "right";
}
break;
case "stop" :
break;
}
};
MenueM.prototype.onRollOver = function(){
this.tempDir = this.dir;
this.dir = "stop";
}
MenueM.prototype.onRollOut = function(){
this.dir = this.tempDir;
}
MenueM._link = "www.somedomain.com";
var _l1:MovieClip = _root.createEmptyMovieClip("test_mc", 0);
_l1.beginFill(0x00ff00, 100);
_l1.moveTo(20, 20);
_l1.lineTo(20, 120);
_l1.lineTo(120, 120);
_l1.lineTo(120, 20);
_l1.lineTo(20, 20);
_l1.endFill();
_l1.__proto__ = MenueM.prototype;
_l1._link = "www.somedomain.com/page1";
var _l3:MovieClip = _root.createEmptyMovieClip("test1_mc", 20);
_l3.beginFill(0x00ffff, 100);
_l3.moveTo(170, 170);
_l3.lineTo(170, 270);
_l3.lineTo(270, 270);
_l3.lineTo(270, 170);
_l3.lineTo(170, 170);
_l3.endFill();
_l3.__proto__ = MenueM.prototype;
_l3._link = "www.somedomain.com/page2";
var _l2:TextField = _root.createTextField("status_txt", 10, 300, 300, 200, 20);
with (status_txt) {
text = "status";
}
Есть еще вариант - сделать все то же самое во внешнем .АС файле, но не похоже, что оно тебе будет нужно. Cделал примитивную анимацию в классе, только для примера, захочешь - сам переделаешь.
Где ты его взял, раздекомпилил что-ли, я не нашел мувика с именем blir, какой-то был.
Очень странно, но под 6-ку и выше не хочет, работает только под 5-кой =:()
О так, ссылки вставить очень просто.
У тебя есть строчка:
for (var l=0;l<=maxAnzahl;l++) {
this["menu"+l].nr = _root.links[l];
....ты поставил свои слова, ну, так как же поставь и с линками.
я написал так:
добавил второй массив, твои будующие линки:
nax = new Array()
nax[0] = "http://www.nax1.html"
nax[1] = "http://www.nax2.html"
nax[2] = "http://www.nax3.html"
nax[3] = "http://www.nax4.html"
nax[4] = "http://www.nax5.html"
их столько, сколько пунктов.
а далее я написал так:
for (var l=0;l<=maxAnzahl;l++) {
this["menu"+l].nr = _root.links[l];
this["menu"+l].btn.onPress = function(){
getURL(_root.nax[l]);
}
}
Счастье оно вот это:
this["menu"+l].btn.onPress = function(){
getURL(_root.nax[l]);
}Соответственно пропиши btn - название твоей кнопки в муве menu,
только это счастье не работает в 5-ке, ему нужна 6-ка, но при экспорте в 6-ку нифига не пашет, чего не знаю, может другие подскажут.
Уря! Ответ найден, надеюсь не поздно.
Массив оставляем
nax = new Array();
nax[0] = "http://www.nax1.html";
nax[1] = "http://www.nax2.html";
nax[2] = "http://www.nax3.html";
nax[3] = "http://www.nax4.html";
//this["menu"+l].bild = _root.links[l]; - это комментим
Теперь заходи в мув menu, обзывать кнопу не обяз.
Пишешь там:
on(press){
l=nummer-1
getURL(_root.nax[l]);
}
Вот и всё.
Что за nummer ? - текстовое поле размером в 2 пункта, под кнопой, за ней, шоб нихто не увидел :)
Хотел выложить исходник тебе, но не знаю, как, "прикрепить файл" нигде не нашел, если что подскажите.
Кстати, как код выделять в такие вот темные прямоугольники, а то админы правят, не удобно как-то.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.