Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   case, catch и try в AS3 (http://www.flasher.ru/forum/showthread.php?t=146309)

NikolyA 03.11.2010 22:25

case, catch и try в AS3
 
есть такая функция:

Код AS3:

public function addHotspot(hots:Hotspot) : void
        {
            var hotspotClone:Hotspot;
            var hotspotSprite:Sprite;
            var tempMediaType:uint;
            var origCoords:Point;
            var classDef:Object;
            var hotspotLoader:Loader;
            var dob:DisplayObject;
            var hotspot:Object = hots;
            if (polygonCoordsArray.length > 0)
            {
                polygonCoordsArray = [];
            }
            if (polygonControlPointsArray.length > 0)
            {
                polygonControlPointsArray = [];
            }
            hotspotClone = hotspot.clone();
            hotspotSprite = new Sprite();
            hotspotsMap[hotspotSprite] = hotspotClone;
            hotspotsLoadingArray.push(hotspotClone);
            hotspotSpritesLoadingArray.push(hotspotSprite);
            hotspotSprite.x = hotspotClone.x;
            hotspotSprite.y = hotspotClone.y;
            hotspotSprite.scaleX = hotspotClone.xScale / hotspotClone.zoom;
            hotspotSprite.scaleY = hotspotClone.yScale / hotspotClone.zoom;
            tempMediaType = hotspotClone.mediaType;
            switch(tempMediaType)
            {
                case Hotspot.MEDIATYPE_SYMBOL:
                    classDef;
                    try
                    {
                        classDef = getDefinitionByName(hotspotClone.media);
                    }
                    catch (e:Error)
                    {
                        try
                        {
                            classDef = _viewer.loaderInfo.applicationDomain.getDefinition(hotspotClone.media) as Object;
                        }
                        catch (e:Error)
                        {
                            Tooltip.show(Resources.ERROR_LOADINGHOTSPOTMEDIASYMBOL + e, false, -1, -1, true, 0, true);
                        }
                        if (classDef != null)
                        {
                            dob = new classDef as DisplayObject;
                            if (dob != null)
                            {
                                hotspotSprite.addChild(dob);
                                configHotspot(hotspotSprite);
                            }
                        }
                        break;
                    case Hotspot.MEDIATYPE_URL:
                        hotspotLoader = new Loader();
                        hotspotLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadExternalHotspotCompleteHandler, false, 0, true);
                        hotspotLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadExternalHotspotIOErrorHandler, false, 0, true);
                        hotspotLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadExternalHotspotSecurityErrorHandler, false, 0, true);
                        hotspotLoader.load(new URLRequest(hotspotClone.media));
                        hotspotSprite.addChild(hotspotLoader);
                        break;
                    default:
                        break;
                }
                hotspots.addChild(hotspotSprite);
                origCoords = new Point(hotspotSprite.x, hotspotSprite.y);
                setCurrentHotspot(hotspotClone.id);
        }

но при компиляции выдает ошибку: 1084: Syntax error: expecting identifier before case.

в чем проблема?

cleptoman 03.11.2010 22:37

а зачем после дефолта брик и что такое отдельностоящее classDef?
и в первом кейсе, насколько я понимаю одной скобки после catch не хватает

Lecosson 03.11.2010 23:56

Фигурная скобка непарная

NikolyA 04.11.2010 01:03

cleptoman
спасибо, вопрос решен

chabapok 04.11.2010 17:13

пиши открывающую скобку на той же самой строке - и проблем из серии "забыл закрыть" не будет.


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

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