Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Количество используемой памяти (http://www.flasher.ru/forum/showthread.php?t=162891)

windrunner31 04.08.2011 23:53

Количество используемой памяти
 
Здравствуйте,прошу прощения за такое кол-во вопросов,но я не смог найти ответ на этот вопрос -
Как узнать то,сколько памяти занимает флешка,чтобы узнавать то,насколько флешка утечна.

carrotoff 05.08.2011 00:10

Да пожалуйста!

КорДум 05.08.2011 00:15

Любой монитор процессов не катит?

surlac 05.08.2011 00:35

Цитата:

Сообщение от carrotoff (Сообщение 1018161)

Может быть человека интересует сколько занимает область стека. Было бы очень интересно узнать.

andrew911 05.08.2011 02:00

Для отслеживания утечек используйте профилер (есть во FlashDevelop).
Или есть удобная флешка FlashPreloadProfiler - можно увидеть как растет память и на что именно уходит.

windrunner31 05.08.2011 10:18

Но дело в том,что я пишу весь проэкт в flash professional cs5,а там нету никаких профайлеров и в помине,как быть?Поставить FlashPreloadProfiler попытался,но мне выдало ошибку
Код AS3:

Starting FlashPreloadProfiler!
Loading configs...
valid object [object Object]
Direct (embeded) profiler launch
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

Я понимаю,что нужно переходить в FlashDevelop,но там нету возможности создавать анимацию,обьекты без кода,а меня это не устраивает.

dimarik 05.08.2011 10:29

Похоже, что обращаетесь сразу к stage, не дожидаясь события addedToStage в своем приложении. Простая ошибка всех новичков.

windrunner31 05.08.2011 11:17

В связи с тем,что вы сказали попробывал сделать так:
Код AS3:

import flash.events.Event;
import net.jpauclair.FlashPreloadProfiler;
 
stage.addEventListener(Event.ADDED_TO_STAGE,init);
 
function init(e:Event):void {
stage.addChild(new FlashPreloadProfiler());
}

Функция init вообще не запускается.
Потом попробывал сделать так:
Код AS3:

import flash.events.Event;
import net.jpauclair.FlashPreloadProfiler;
 
stage.addEventListener(Event.ENTER_FRAME,init);
 
function init(e:Event):void {
stage.addChild(new FlashPreloadProfiler());
stage.removeEventListener(Event.ENTER_FRAME,init);
}

функция init запускается,но ошибка таже.

goodguy 05.08.2011 11:29

Цитата:

stage.addEventListener(Event.ADDED_TO_STAGE,init);
Ты добавляешь слушатель к стейдж, которой в этот момент не существует. Круговая порука )
Убери stage и подпиши вместо нее нужный объект, и сразу все заработает

windrunner31 05.08.2011 11:48

Тоесть как этот код будет выглядеть в конце концов?Так?
Код AS3:

import flash.events.Event;
import net.jpauclair.FlashPreloadProfiler;
 
addEventListener(Event.ADDED_TO_STAGE,init);
 
function init(e:Event):void {
stage.addChild(new FlashPreloadProfiler());
}


goodguy 05.08.2011 12:06

Да это вообще не правильный код. Я так понмаю это написано в кадре. А там объект стейдж должен быть доступен сразу. Не видя что там вообще происходит, сложно сказать где ошибка.

windrunner31 05.08.2011 12:11

Цитата:

Сообщение от goodguy (Сообщение 1018276)
Да это вообще не правильный код. Я так понмаю это написано в кадре. А там объект стейдж должен быть доступен сразу. Не видя что там вообще происходит, сложно сказать где ошибка.

Я могу выложить весь проэкт сюда,но т.к я учился всему сам,то,возможно,мои принципы програмированния отличаются от ваших,поэтому не судите строго)
Выкладывать?А код я написал в кадре методом тыка,я считал так:
"Не работает в классе,может надо писать в кадре?"
И написал)

carrotoff 05.08.2011 12:13

Выкладывайте.

Цитата:

Сообщение от windrunner31 (Сообщение 1018278)
А код я написал в кадре методом тыка,я считал так:
"Не работает в классе,может надо писать в кадре?"
И написал)

Очень печальный аргумент.

goodguy 05.08.2011 12:21

Цитата:

но т.к я учился всему сам,то,возможно,мои принципы програмированния отличаются от ваших
Конечно. За всех остальных здесь учились другие ) За меня, например, училась моя сестра, потом просто произошел обмен мозгами =)

gloomyBrain 05.08.2011 12:52

Цитата:

За меня, например, училась моя сестра, потом просто произошел обмен мозгами =)
Я всегда подозревал, что что-то тут не так...

goodguy 05.08.2011 13:16

Но никогда не мог понять, что именно...

windrunner31 05.08.2011 14:03

goodguy,не много не то имел в виду,я просто не читал книжек,а потому о общих стандартах написания программ я не знаю)
http://***********/25049387 - ссылька,там все от моего проэкта

goodguy 05.08.2011 14:53

Цитата:

я просто не читал книжек
Значит надо читать

dimarik 05.08.2011 14:59

Я оставил две строчки и все заработало. Правда, еще подключил swc
Код AS3:

import net.jpauclair.FlashPreloadProfiler;
 
addChild(new FlashPreloadProfiler());


windrunner31 05.08.2011 16:22

dimarik,офигеть,огромное спасибо!Как я сам до такого не додумался?)
Рассмотрел,оказалось,что утечек нету,но есть один большой вопрос,у меня занимает 50% производительности флешки События EnterFrame,которые у меня вообще нету,как так?
И еще одна просьба,вот архив с чуть поправленным классом Moving,там есть переменная Callback,которая должна вызываться,но она выдает ошибку
Код AS3:

ArgumentError: Error #1063: Несоответствие количества аргументов в Main/TestFunction(). Ожидалось 1, получено 0.
        at Function/http://adobe.com/AS3/2006/builtin::call()
        at Moving/MoveObjects()
        at flash.utils::Timer/_timerDispatch()
        at flash.utils::Timer/tick()

Огромная просьба,сказать в чем проблема.

dimarik 05.08.2011 16:42

Ответ в тексте описания ошибки

windrunner31 05.08.2011 16:52

Цитата:

Сообщение от dimarik (Сообщение 1018368)
Ответ в тексте описания ошибки

Я это понимаю,но обьект дается,и дается существующий,я проверял различными трейсами,да и хотябы то,что обьект успешно удаляется с помощью той же переменной показывает,что этот обьект существует,и его содержит переменная,но она почему-то не хочет передаваться между классами main.as и moving.as

dimarik 05.08.2011 16:57

TestFunction в каких-то случаях вызывается без передачи параметра.

windrunner31 05.08.2011 17:16

Цитата:

Сообщение от dimarik (Сообщение 1018376)
TestFunction в каких-то случаях вызывается без передачи параметра.

Я не понял,что вы имели в виду

dimarik 05.08.2011 17:21

Цитата:

ArgumentError: Error #1063: Несоответствие количества аргументов в Main/TestFunction(). Ожидалось 1, получено 0.
Это означает, что ни одного (0, ноль) параметра не было передано в метод Main#TestFunction при его вызове, хотя этот метод описан сигнатурой, в которой ожидается один (1) аргумент. Так должно быть понятнее.

windrunner31 05.08.2011 18:54

Блин,все равно не могу исправить эту ошибку,все вроде верно,а оно не пашет

Добавлено через 5 минут
Для примера,вот что я сделал -
Код AS3:

                public function TestFunction(obj:int):void {
                trace("test");
                }

И соответственно
Код AS3:

Callback.call(1);

И все равно не работает,тут уже не может быть ошибок моих.

toFL 05.08.2011 19:04

Код AS3:

Callback(1);

Так, не? Читайте документацию Function (Метод call)

windrunner31 05.08.2011 19:09

Мде...)Спасибо большое!


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

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