Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   переопределить функцию у sprite (http://www.flasher.ru/forum/showthread.php?t=173900)

vav2001 13.01.2012 17:20

переопределить функцию у sprite
 
Ребят просветите, сам пишу на С++ но пришлось столкнуться компиляцией проекта на ActionScript 3. Прочел немного книжку Мука по работе с классами для понимания дела, но вот в чем суть вопроса .....

не получается переопределить функцию от родительского класса
Код AS3:

import flash.display.*;
internal class MyParameter extends flash.display.Sprite
{
  public override function set width(arg1:Number):void
  {
    return;
  }
}

Пишет: 1020: Метод, который помечен на переопределение, должен переопределять другой метод. ??

illuzor 13.01.2012 17:55

Код AS3:

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?

КорДум 13.01.2012 18:02

Разницы нет. Я бы сделал ставку на неверное точное соблюдение сигнатуры. arg1 != value

Stitch512 13.01.2012 18:10

arg1 или value - разницы нет.

vav2001 13.01.2012 18:30

да ребят вы правый код рабочий, пока шла модерация я это уже понял. просто пример кода упростил здесь чтобы понятней было. на самом деле класс наследовался 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

Цитата:

Сообщение от Deimos747 (Сообщение 1056627)
Есть немного бредовая идея: попробуйте переопределить и get-метод

Граждане, не забивайте голову догадками. Код полностью рабочий. Только что сам проверил. Я так полагаю что vav2001 выложил не весь свой код. И уверен что проблема совсем не в этих строках.

Dukobpa3 13.01.2012 18:48

Код AS3:

                override public function set width(value:Number):void
                {
                        super.width = value;
                }

Норм проканало, в чем проблема то?


Часовой пояс GMT +4, время: 20:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.