Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с Content (http://www.flasher.ru/forum/showthread.php?t=207646)

mariamarfi 28.04.2014 15:51

Проблема с Content
 
Добрый день, форумчане-программисты. Подскажите мне, пожалуйста. Почему не верно отображаются контенты после клика на выбранную кнопку в Меню? Все кнопки нормально действуют, кроме Training и Reviews.

Код AS3:

import flash.events.Event;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import caurina.transitions.*;
import com.*;
 
stop();
 
var inTween: Tween;
 
inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
Tweener.addTween(container, {transition:"easeOut"});
container.gotoAndStop("Home");
 
//=================Navigation=====================//
navigation.btn_MenuHome.addEventListener(MouseEvent.CLICK, HomeF);
navigation.btn_MenuAbout.addEventListener(MouseEvent.CLICK, AboutF);
navigation.btn_MenuTraining.addEventListener(MouseEvent.CLICK, TrainingF);
navigation.btn_MenuTest.addEventListener(MouseEvent.CLICK, TestF);
navigation.btn_MenuReviews.addEventListener(MouseEvent.CLICK, ReviewsF);
navigation.btn_MenuContact.addEventListener(MouseEvent.CLICK, ContactF);
 
function HomeF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Home"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function AboutF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["About"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function TrainingF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Traning"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function TestF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Test"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function ReviewsF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Rewiews"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function ContactF(Event:MouseEvent):void
{
        Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Contact"]});
        inTween = new Tween (container, "alpha", None.easeNone,0,1,1,true);
}
 
function goNext(s:String)
{
        switch(s)
        {
                case "Home":{ container.gotoAndStop(s);break;}
                case "About":{ container.gotoAndStop(s);break;}
                case "Training":{ container.gotoAndStop(s);break;}
                case "Test":{ container.gotoAndStop(s);break;}
                case "Reviews":{ container.gotoAndStop(s);break;}
                case "Contact":{ container.gotoAndStop(s);break;}
                default: break;
        }
 
}
 
//======================== Изменение цвета текста текущей кнопки ====================================================//
 
var _currentBtn:SimpleButton; // Текущая кнопка
 
navigation.btn_MenuHome.addEventListener(MouseEvent.CLICK, butClick);
navigation.btn_MenuAbout.addEventListener(MouseEvent.CLICK, butClick);
navigation.btn_MenuTraining.addEventListener(MouseEvent.CLICK, butClick);
navigation.btn_MenuTest.addEventListener(MouseEvent.CLICK, butClick);
navigation.btn_MenuReviews.addEventListener(MouseEvent.CLICK, butClick);
navigation.btn_MenuContact.addEventListener(MouseEvent.CLICK, butClick);
 
function butClick(e: Event = null)
{
        switch (e.target.name)
        {
                case "btn_MenuHome":
                break;
 
                case "btn_MenuAbout":
                break;
 
                case "btn_MenuTraining":
                break;
 
                case "btn_MenuTest":
                break;
 
                case "btn_MenuReviews":
                break;
 
                case "btn_MenuContact":
                break;
        }
        changeColor(e.target as SimpleButton);
}
 
//==== Функция изменения цвета текущей кнопки=====//
function changeColor(btn:SimpleButton):void
{
        if(_currentBtn)
        {
                (_currentBtn.upState as TextField).textColor = 0xFDBDF9; // Цвет розовый
        }
        _currentBtn = btn;
        //trace(btn.upState);
        (btn.upState as TextField).textColor = 0x3CF525; // Цвет салатовый //Цвет белый  0xF8FAFF
}
//======================== / Изменение цвета текста текущей кнопки====================================================//



Training:
Код AS3:

import caurina.transitions.*;
 
var mcCurr = this;
 
function loadResource(resURL)
{
        var url = resURL;
        var request1 = new URLRequest(url);
        var loader1 = new Loader();
        var mc1 = this.work1.workMc;
 
        var nc = mc1.numChildren;
 
        if (nc)
        {
                var l1 = mc1.getChildAt(0);
                mc1.removeChild(l1);
                l1 = null;
        }
 
        loader1.load(request1);//start loading img/swf
        mc1.addChild(loader1);
 
        loader1.contentLoaderInfo.addEventListener("complete", finished_loading);
        loader1.contentLoaderInfo.addEventListener("progress", progress_loading);
 
}
 
function progress_loading(e:Event)
{
        loader.rotation +=5;
}
 
function finished_loading(e:Event)
{
        loader.visible =false;
        Tweener.addTween(mcCurr, {transition:"easeOut"});
}
 
loadResource("image_gallery_as3.swf");


Akopalipsis 28.04.2014 21:40

У Вас опечатки -
Код AS3:

Tweener.addTween(container, {transition:"easeOut", onComplete:goNext, onCompleteParams:["Traning"]});

Цитата:

"Traning"
И тоже самое в следующем имени.

mariamarfi 29.04.2014 13:20

Исправила ошибку. Спасибо. Сработало.

Training (флэш почему-то не отображается?.. белый экран получается):


Код AS3:

import caurina.transitions.*;
 
var mcCurr = this;
 
function loadResource(resURL)
{
        var url = resURL;
        var request1 = new URLRequest(url);
        var loader1 = new Loader();
        var mc1 = this.work1.workMc;
 
        var nc = mc1.numChildren;
 
        if (nc)
        {
                var l1 = mc1.getChildAt(0);
                mc1.removeChild(l1);
                l1 = null;
        }
 
        loader1.load(request1);//start loading img/swf
        mc1.addChild(loader1);
 
        loader1.contentLoaderInfo.addEventListener("complete", finished_loading);
        loader1.contentLoaderInfo.addEventListener("progress", progress_loading);
 
}
 
function progress_loading(e:Event)
{
        loader.rotation +=5;
}
 
function finished_loading(e:Event)
{
        loader.visible =false;
        Tweener.addTween(mcCurr, {transition:"easeOut"});
}
 
loadResource("image_gallery_as3.swf");


Akopalipsis 29.04.2014 13:49

Возможно я бы и смог Вам помочь, но для начала помогите мне:) Как в адоби кадрам задают лейбел, вот чтобы кадр вызывать по имени?

mariamarfi 29.04.2014 15:41

Ошибка

TypeError: Error #1010: Термин не определен и не имеет свойств.
at Fon_fla::Content_2/loadResource()
at Fon_fla::Content_2/frame8()
at flash.display::MovieClip/gotoAndStop()
at Fon_fla::MainTimeline/goNext()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at caurina.transitions::Tweener$/updateTweenByIndex()
at caurina.transitions::Tweener$/addTween()
at Fon_fla::MainTimeline/TrainingF()

mariamarfi 29.04.2014 15:46

Вложений: 1
Цитата:

Сообщение от Akopalipsis (Сообщение 1164883)
Возможно я бы и смог Вам помочь, но для начала помогите мне:) Как в адоби кадрам задают лейбел, вот чтобы кадр вызывать по имени?

Если я поняла ваш вопрос, вам надо задать пустой ключевой кадр, далее в свойстве на вкладке "Надпись" - введите Имя данного кадра.

Akopalipsis 29.04.2014 15:58

я в кадрах не понимаю, но мне интересно понять их на примере, чем я сейчас и занимаюсь, но я не как не могу найти container. Где он?

mariamarfi 29.04.2014 16:10

Цитата:

Сообщение от Akopalipsis (Сообщение 1164892)
я в кадрах не понимаю, но мне интересно понять их на примере, чем я сейчас и занимаюсь, но я не как не могу найти container. Где он?

На прикреплённом файле-картинки я пометила красным цветом. Container - символ, казалось бы он "невидимый". Кликайте дважды на символ на кадре, тогда появится ещё окно новое, там увидите кадры с label.

mariamarfi 29.04.2014 16:16

Как я создала этот символ container? В панели меню ВСТАВКА-Создать символ или Ctrl+f8, указав его имя. Далее создаёте там же (в символе) кадры. В конце концов созданный полученный символ из библиотеки перенести на "родительский" кадр основной.

Akopalipsis 29.04.2014 17:24

Пока подозрения пали вот на эту строчку в восьмом кадре -
Код AS3:

var mc1 = this.work1.workMc;

Где находится объект [object Content_center__2] ? я его не как найти не могу, а ошибка кроется в нем.
И сразу огромное замечание - у Вас все свойства ( переменные ) не имеют типа, это очень плохо.

Добавлено через 14 минут
Вот this.work1 это ссылка на какой-то MovieClip, а ссылка this.work1.workMc это не могу понять на что ссылка. Если бы это было, как предполагается, ссылка на наследника DisplayObjectContainer ( Sprite, MovieClip ) то значение в худшем случаи было бы null. А у этой ссылки значение undefined, что говорит о том,
что Вы не указали тип и это мешает выявлению ошибки. Если бы были написаны типы, то компилятор возможно даже бы не довел до такой ситуации которая существует сейчас, а показал бы на проблемное место в самом начале.

Добавлено через 14 минут
Мне нужно знать, где находится объект [object Content_center__2]


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

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