![]() |
|
||||||||||
|
|||||
|
Доброе время суток Вам!!!
В ходе реализации одного проэкта у меня возникло небольшое затруднение.. помогите советом! Разработка мини-игры а-ля Магазин одежды. Существует около 30 мувиков одежды, они должны обладать почти одинаковыми параметрами... и для всех необходимо назначить onRelease... пробовал сделать так: var obj:Object = { this.prototype.onRelease:function() { trace("something is gooing on!"); }, drop_point_x:0, drop_point_y:0, lib_name: "" } var dress = new obj(); но компилятор ругается на функцию и на var dress... Что и как мне сделать??? |
|
|||||
|
4AM Games
|
ты вообще понял что ты написал? у Object нету события onRelease , что означает :function() ? это ошибка синтаксическая, или вот это _y:0 ? купи книжек выучи синтаксис.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
по книге и учусь... =(
Цитата кода из книги Дмитрия Гурского "Action Script 2.0" var obj:Object={a:l,b:2,func:function():Void {trace (a)}}; var a:String-"Привет"; // Создаем переменную, имя которой совпадает // с именем свойства объекта obj obj.func(); // Выводит: Привет (метод "видит" переменную) trace(obj.a); // Выводит: 1 (свойство существует) З.Ы. to Nirth :: это была не конструктивная критика =( |
|
|||||
|
4AM Games
|
конструктивная критика стоит денег =)
присваивание переменным значения осуществаляеть через "=" , исключение - внутри обжекта. иди читай книгу до конца =) а лучше сначала прочесть документацию. потом возвращайся на форум
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
ок, пасибо за "помощь"
так, для справки :: я и пытался создать объект... Может кто-нибудь посоветует нормально что мне делать? как можно 30 мувикам присвоить onRelease... кроме цикла перебирающего массив... |
|
|||||
|
[+1 20.07.06]
[+1 04.08.2006] |
можно засунуть их в класс... прочитай там про Object.registerClass
|
|
|||||
|
пасибо! уже что-то... получился такой класс::
class ClassShop extends MovieClip
{
var lib_name:String = "";
var lib_name_tmp:String = "";
var is_true:Boolean = false;
var type_clothe:Number = 0;
public function ClassShop()
{
var _alpha:Number = 90;
}
public function startDrag(tr:Boolean,sdleft:Number,sdtop:Number,sdright:Number,sdbot:Number)
{
this.startDrag = startDrag();
}
public function onRelease()
{
/*this._visible = false;
Mouse.hide();*/
}
public function onRollOver()
{
this._alpha = 100;
}
public function onRollOut()
{
this._alpha = 90;
}
public function onPress()
{
this._visible = false;
Mouse.hide();
lib_name_tmp = lib_name+"_tmp";
_root.attachMovie(lib_name, lib_name_tmp, _root.getNextHighestDepth());
lib_name_tmp.startDrag(false, 0, 0, 800, 600);
}
}
this.startDrag = startDrag(); а без определения startDrag :: There is no method with the name 'startDrag'. lib_name_tmp.startDrag(false, 0, 0, 800, 600); в чем косяк??? |
|
|||||
|
a nafiga ti его переписал?
немного совсем не то ты сделал %)) ты эти функции не трогай без дела class ClassShop extends MovieClip { var lib_name:String = ""; var lib_name_tmp:String = ""; var is_true:Boolean = false; var type_clothe:Number = 0; public function ClassShop() { var _alpha:Number = 90; setHandlers(); } function setHandlers(){ this.onPress = function() //!!!!!!!! { this._visible = false; Mouse.hide(); lib_name_tmp = lib_name+"_tmp"; _root.attachMovie(lib_name, lib_name_tmp, _root.getNextHighestDepth()); lib_name_tmp.startDrag(false, 0, 0, 800, 600); }} } ну и остальное в помже духе |
|
|||||
|
сделал как ты советовол , получается что из 30 мувиков всего один реагирует правильно (как задано в классе)...
класс линкуется с мувиком посредством for (i=0; i<=30; i++) { clothe_up_up[i].__proto__ = ClassShop.prototype; clothe_up_up[i].constructor = ClassShop; clothe_up_up[i].constructor.apply(dress); } // код нашел на форуме же.. если кто-нить объяснит что он значит, буду благодарен.. а то с прототипами не дружу... т.е. в массиве перечислены все мувики... када делал через pivate function то все мувики вели себя нормально... хз в чем дело... |
|
|||||
|
А ручками написать нельзя без вот этих кодов ? заходишь в библиотеку, выбираешь свой мувик - свойства - адвансед - и там есть поле для ввода соответствующего класса ввел, и забыл про все печали и все правильно реагирует
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|