Просмотр полной версии : переопределить функцию у sprite
Ребят просветите, сам пишу на С++ но пришлось столкнуться компиляцией проекта на ActionScript 3. Прочел немного книжку Мука по работе с классами для понимания дела, но вот в чем суть вопроса .....
не получается переопределить функцию от родительского класса
import flash.display.*;
internal class MyParameter extends flash.display.Sprite
{
public override function set width(arg1:Number):void
{
return;
}
}
Пишет: 1020: Метод, который помечен на переопределение, должен переопределять другой метод. ??
import flash.display.Sprite;
internal class MyParameter extends Sprite {
public override function set width (value:Number) : void {
//return то зачем?
}
}
Stitch512
13.01.2012, 17:55
этот код рабочий, ошибка в другом месте
HardCoder
13.01.2012, 17:59
А разве override не должно стоять перед public?
Разницы нет. Я бы сделал ставку на неверное точное соблюдение сигнатуры. arg1 != value
Stitch512
13.01.2012, 18:10
arg1 или value - разницы нет.
да ребят вы правый код рабочий, пока шла модерация я это уже понял. просто пример кода упростил здесь чтобы понятней было. на самом деле класс наследовался 2 раза, и на первом наследовании был как internal находясь в другом сегменте...
странно другое, что это готовый чужой проект и ведь раньше как-то работал с таким опредением, но пришлось исправить на public.
лично я пользуюсь Flash Builder 4.6
еще маленький вопрос в чем назначение set и get в определении функций public function get ..... ?
Deimos747
13.01.2012, 18:34
В документации Adobe что-то абстрактное
1020 Метод, помеченный как override, имеет приоритет над другими методами.
Есть немного бредовая идея: попробуйте переопределить и get-метод
HardCoder
13.01.2012, 18:46
Есть немного бредовая идея: попробуйте переопределить и get-методГраждане, не забивайте голову догадками. Код полностью рабочий. Только что сам проверил. Я так полагаю что vav2001 выложил не весь свой код. И уверен что проблема совсем не в этих строках.
Dukobpa3
13.01.2012, 18:48
override public function set width(value:Number):void
{
super.width = value;
}
Норм проканало, в чем проблема то?
import flash.display.*;
internal class MyParameter extends flash.display.Sprite//Не знаю, это нормально?
{
public override function set width(arg1:Number):void//А это ---->
return;//<----
}
}
Странно, что код из декомпила.
Dukobpa3
13.01.2012, 19:21
Вот все думают что у них такой гениальный код шопипец, и его надо прятать.
Почему бы не скинуть целиком класс? Я сомневаюсь что его кто-то будет воровать.
Этот код рабочий, абсолютно. Проблема в другом.
ребят спасибо большое за оперативность ! код действительно рабочий, вот только модерация жесткая, написал ответ час назад и ничего, аж неудобно перед вами ....
ребята вы правы все работает
Странно, что код из декомпила.
поймал с поличным ))
На форуме обсуждение исходников полученных врезультате декомпиляции запрещено.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.